Magic Quadrant™ für Privileged Access Management 2025: Netwrix zum vierten Jahr in Folge anerkannt. Laden Sie den Bericht herunter.

Plattform
Ressourcen­zentrumBlog
So sperren, entsperren, aktivieren und deaktivieren Sie AD-Konten mit PowerShell

So sperren, entsperren, aktivieren und deaktivieren Sie AD-Konten mit PowerShell

Jul 30, 2018

Die Active Directory GUI-Verwaltungstools, wie Active Directory Users and Computers (ADUC), sind geeignet, um Operationen an einzelnen Konten durchzuführen. Aber wenn Sie mit mehreren AD-Konten arbeiten müssen, ist PowerShell ein flexibleres Werkzeug. In diesem Beitrag zeige ich Ihnen, wie Sie PowerShell verwenden können, um AD-Benutzer- und Computerkonten einzeln und in großen Mengen mithilfe von kommagetrennten Dateien zu sperren, entsperren, aktivieren und deaktivieren.

Bevor Sie die Active Directory PowerShell-Cmdlets ausführen können, müssen Sie das Active Directory-Modul für PowerShell auf Ihrem Computer installiert haben. Wenn Sie Windows 10 verwenden, laden Sie die Remote Server Administration Tools (RSAT) für Windows 10 von der Microsoft-Website hier herunter und installieren Sie diese. Aktivieren Sie dann das AD PowerShell-Modul-Feature, indem Sie eine PowerShell-Eingabeaufforderung mit lokalen Administratorrechten öffnen und das Cmdlet Enable-WindowsOptionalFeature wie hier gezeigt ausführen:

      Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
      

Optional können Sie auch die Hilfedateien mit dem Cmdlet Update-Help aktualisieren:

      Update-Help -Module ActiveDirectory -Verbose -Force
      

Stellen Sie sicher, dass Sie die PowerShell-Eingabeaufforderung schließen, da Sie die erhöhten Privilegien für nichts anderes benötigen werden. Die nachfolgenden Anweisungen können im Sicherheitskontext eines beliebigen Benutzers ausgeführt werden, der die Berechtigung hat, Benutzerkontenoperationen in Active Directory durchzuführen, wie das Entsperren von Benutzerkonten sowie das Aktivieren und Deaktivieren von Benutzer-, Computer- und Dienstkonten.

So finden Sie gesperrte Active Directory-Konten

Sie können Active Directory-Konten nicht mit PowerShell oder der GUI sperren; tatsächlich gibt es keinen Grund, dies tun zu wollen. Aber Sie können nach gesperrten Benutzerkonten suchen mit Hilfe des Search-ADAccount-Cmdlets. Hier leite ich die Ergebnisse des Search-ADAccount-Cmdlets an das Select-Object-Cmdlet weiter, um nur die Name- und SamAccountName-Attribute jedes gesperrten Kontos anzuzeigen:

      Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName
      

So entsperren Sie Active Directory-Konten

Sie können Benutzerkonten einfach mit dem Unlock-ADAccount Cmdlet entsperren. Verwenden Sie den -Identity Parameter, um anzugeben, welches Konto entsperrt werden soll; Sie können dessen Distinguished Name, Security Identifier (SID), Globally Unique Identifier (GUID) oder Security Account Manager (SAM) Kontonamen angeben. Hier entsperre ich das Konto RussellS:

      Unlock-ADAccount -Identity RussellS
      

So aktivieren Sie Active Directory-Konten

Wenn ein Konto-Objekt aus irgendeinem Grund deaktiviert wurde, können Sie es mit dem Cmdlet Enable-ADAccount wieder aktivieren:

      Enable-ADAccount -Identity RussellS
      


So deaktivieren Sie Active Directory-Konten

Ähnlich wird das Cmdlet Disable-ADAccount verwendet, um AD-Konten zu deaktivieren:

Disable-ADAccount -Identity RussellS

Benutzer über eine CSV-Datei deaktivieren

Sie können auch alle in einer kommagetrennten (.csv) Textdatei aufgelisteten Active Directory-Benutzerkonten deaktivieren. Die Datei muss eine Kopfzeile enthalten und dann eine Liste von Benutzernamen, jeweils in einer eigenen Zeile. Meine CSV-Datei hat nur eine Spalte (mit der Kopfzeile „Name“), daher hat meine kommagetrennte Datei keine Kommas! Wenn Ihre CSV-Datei mehr als eine Spalte hat, werden diese zusätzlichen Spalten vom Skript einfach ignoriert.

Image

Ich beginne damit, den Inhalt der CSV-Datei als Objekt ($users) zu importieren und verwende dann eine ForEach-Schleife, um den Benutzer in jeder Zeile der Textdatei zu deaktivieren. Hier ist das PowerShell-Skript:

      $users=Import-CSV c:tempusers.csv
ForEach ($user in $users)
{
     Disable-ADAccount -Identity $($user.name)
}
      

AD-Konten mit Netwrix Directory Manager verwalten

Deaktivieren von Computerkonten aus einer CSV-Datei

Das PowerShell-Skript zum Deaktivieren von Computerkonten, die in einer CSV-Datei aufgelistet sind, ist fast identisch. Der Hauptunterschied besteht darin, dass ich ein Dollarzeichen ($) am Ende des -Identity-Parameters hinzufügen muss, um zu kennzeichnen, dass ich ein Computerobjekt deaktivieren möchte und kein Benutzerkonto. Ich ändere auch die Variablen- und Dateinamen, damit sie besser zu Computerkonten passen.

Hier ist das Skript:

      $computers=Import-CSV c:tempcomputers.csv
ForEach ($computer in $computers)
{
     Disable-ADAccount -Identity "$($computer.name)$"
}
      

Um die Ergebnisse zu überprüfen, verwenden Sie das Cmdlet Search-ADAccount:

      Search-ADAccount –AccountDisabled –ComputersOnly | Select-Object Name, SamAccountName
      

Deaktivierung inaktiver Benutzer

Die Cmdlets Search-ADAccount und Disable-ADAccount können zusammen verwendet werden, um inaktive Benutzerkonten zu deaktivieren. Ich werde zwei Beispiele geben. Zuerst werde ich ein neues TimeSpan-Objekt ($timespan) erstellen und es auf neunzig Tage einstellen, und dann werde ich es als Wert des -TimeSpan-Parameters verwenden, um Konten zu deaktivieren, die in den letzten drei Monaten nicht aktiv waren. Der -AccountInactive-Parameter erfordert, dass die Domänenfunktionsebene Windows Server 2003 oder höher ist.

      $timespan = New-Timespan -Days 90
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $timespan | Disable-ADAccount
      

Eine weitere Option ist die Verwendung des -DateTime-Parameters, um Konten zurückzugeben, die seit einem bestimmten Datum inaktiv sind. Dieses Skript deaktiviert alle Konten, die seit dem 3. Juni 2018 nicht aktiv waren:

      Search-ADAccount -UsersOnly -AccountInactive -DateTime ‘6/3/2018’ | Disable-ADAccount
      

Es ist erwähnenswert, dass aufgrund der Art und Weise, wie Active Directory das Attribut LastLogOnDate synchronisiert, die Ergebnisse, die zurückgegeben werden, wenn der Parameter –AccountInactive mit dem Cmdlet Search-ADAccount verwendet wird, um bis zu 9–14 Tage ungenau sein können.

Wie Sie sehen können, ist die Verwaltung des Status von Active Directory-Konten mit PowerShell unkompliziert. Da PowerShell objektorientiert ist, ist es einfach, Objekte zu erstellen, die die gewünschten Daten enthalten, und sie dann an andere Cmdlets weiterzugeben, die die erforderlichen Aktionen ausführen.

Teilen auf

Erfahren Sie mehr

Über den Autor

Asset Not Found

Russell Smith

IT-Berater

IT-Berater und Autor, der sich auf Management- und Sicherheitstechnologien spezialisiert hat. Russell verfügt über mehr als 15 Jahre Erfahrung in der IT, er hat ein Buch über Windows-Sicherheit geschrieben und er hat einen Text für die Official Academic Course (MOAC) Serie von Microsoft mitverfasst.