Tags: Active Directory, PowerShell, Identity-Management
Das AD-Modul für PowerShell umfasst Cmdlets, mit denen Admins Benutzerkonten durchsuchen und ändern können. Search-ADAccount hilft beim Aufspüren gesperrter und deaktivierter Konten, Unlock-ADAccount und Enable-ADAccount entsperren bzw. aktivieren sie wieder.
Wenn sich Benutzer nicht am Active Directory anmelden können und deswegen den Helpdesk kontaktieren, dann liegt es meist daran, dass sie sich wegen zu häufiger Fehleingabe eines Passworts ausgesperrt haben. Als Ursache in Frage kommt auch, dass der Account (versehentlich) deaktiviert wurde oder abgelaufen ist.
Betroffene Konten anzeigen
Diese drei Zustände eines Kontos lassen sich mit dem PowerShell-Cmdlet Search-ADAccount relativ einfach abfragen.
Im einfachsten Fall kontaktiert es den Standard-DC (für die Domäne, welcher der lokale PC angehört) und durchforstet das ganze Verzeichnis:
Search-ADAccount -LockedOut -UsersOnly
Der Schalter UsersOnly schränkt die Suche auf Benutzerkonten ein. Möchte man die Abfrage auf eine OU eingrenzen kann man das über den Parameter SearchBase tun:
Search-ADAccount -LockedOut -UsersOnly -SearchBase "OU=IT,DC=contoso,DC=com"
Nach dem gleichen Muster findet man alle Konten, die deaktiviert wurden. Anstelle des Schalters LockedOut verwendet man dann AccountDisabled.
Befristete Konten finden
Das AD bietet bekanntlich die Möglichkeit, Benutzerkonten zeitlich zu befristen, indem man sie mit einem Ablaufdatum versieht. Konten, die bereits abgelaufen sind, lassen sich mit einem Aufruf nach dem obigen Vorbild ermitteln, der entsprechende Schalter lautet dann AccountExpired:
Search-ADAccount -AccountExpired -UsersOnly
Möchte man herausfinden, ob bestimmte Konten während der nächsten 10 Tage ablaufen, dann würde der Befehl so aussehen:
Search-ADAccount -AccountExpiring -TimeSpan "10"
Wenn man für den Zeitraum auch Stunden und Minuten spezifizieren möchte, dann kann man das durch eine Zeitangabe im Format dd:hh:mm tun.
Accounts entsperren oder aktivieren
Meistens sollen den Erkenntnissen über gesperrte oder deaktivierte Konten auch Taten folgen. Für das Entsperren, Aktivieren oder Verlängern des Ablaufdatums existiert jeweils ein eigenes PowerShell-Cmdlet.
Will man eine Kontosperre aufheben, dann greift man zu Unlock-ADAccount. Es erwartet einen Wert für den verpflichtenden Parameter Identity. Diesen kann man einfach in Form des Kontonamens (SamAccountName), aber auch als Distinguished Name oder SID übergeben:
Unlock-ADAccount -Identity amueller
Falls man dem Cmdlet auf mehrere Benutzernamen anwenden möchte, dann scheitert man schnell daran, dass der Parameter nur einen akzeptiert. In diesem Fall muss man zu einer Schleife greifen:
"amueller","SCooper"|%{Enable-ADAccount $_}
Alternativ kann man dem Cmdlet zum Entsperren eines Kontos auch die Ausgabe von Search-ADAccount übergeben. Dies geschieht nach dem gleichen Muster wie das Aktivieren eines deaktivierten Kontos:
Search-ADAccount -AccountDisabled -UsersOnly -SearchBase "OU=IT,DC=contoso,DC=local" |
Enable-ADAccount
Ablaufdatum verlängern
Will man schließlich das Ablaufdatum eines Accounts verlängern, dann tut man dies mit Hilfe von Set-ADAccountExpiration. Wie die beiden letzten besprochenen Cmdlets kann man ihm das Konto über den Parameter Identity mitteilen oder ihm den Output von Search-ADAccount durchreichen:
Search-ADAccount -AccountExpiring -TimeSpan "15"|
Set-ADAccountExpiration -DateTime 30.04.2017
In diesem Beispiel würde die Gültigkeitsdauer aller Konten, die innerhalb von 15 Tagen ablaufen, bis zum 30.04.2017 um 00:00 Uhr verlängert. Möchte man statt eines festen Datums eine Frist angeben, dann kann man das wie weiter oben gezeigt mit dem Parameter TimeSpan tun.
Täglich Know-how für IT-Pros mit unserem Newsletter
Verwandte Beiträge
- Passwort-Einstellungen mit PowerShell: Kennwort läuft nie ab, Passwort nicht erforderlich
- Managed Service Accounts einrichten mit PowerShell
- Mitgliedschaft eines Users in Active-Directory-Gruppen ausgeben
- Microsoft Entra ergänzt Azure Active Directory um Berechtigungs-Management und Verified ID
- Split-brain DNS in Active Directory einrichten
Weitere Links