Tags: Active Directory, Identity-Management, PowerShell, Passwort
Das Active Directory kennt eine ganze Reihe von Richtlinien für Kennwörter, die ein Administrator den Benutzern vorgeben kann. Manche davon sind jedoch mit Vorsicht zu genießen, beispielsweise wenn Passwörter nie ablaufen oder wenn User gar ohne Kennwort Zugang zum System erhalten. PowerShell kann die betroffenen Konten einfach ermitteln und die entsprechenden Einstellungen ändern.
Es ist eine allgemein übliche Praxis, Benutzer anzuhalten, ihr Kennwort in vorgegebenen Intervallen zu ändern und dabei bereits verwendete Passwörter nicht erneut zu gebrauchen. Einzelne Konten lassen sich von dieser Vorgabe einfach befreien, indem man in AD-Benutzer und -Computer die Eigenschaften eines Kontos öffnet und dort die Option Kennwort läuft nie ab aktiviert.
Anmelden ohne Passwort nicht über GUI konfigurierbar
Eine weitere Ausnahme von den allgemeinen Passwortregeln, die unter dem Gesichtspunkt der Sicherheit noch problematischer ist, lässt sich nicht so einfach einrichten. Es handelt sich dabei um das Recht, sich ohne Eingabe eines Passworts am System anmelden zu dürfen. Dafür muss man sich der Kommandozeile bedienen, weil das GUI-Tool diese Option nicht bietet.
Mit Hilfe von PowerShell kann man sich recht einfach einen Überblick darüber verschaffen, welche User ihr Passwort nicht ändern müssen oder die gar keines benötigen. Das erste der beiden Anliegen kann man mit Hilfe von Get-ADUser erledigen:
Get-ADUser -Filter 'PasswordNeverExpires -eq $TRUE' -Properties PasswordNeverExpires
Verzichtet man auf das Argument -Properties, dann erhält man zwar ebenfalls ein korrektes Ergebnis, aber das entsprechende Attribut scheint in der Anzeige nicht auf. Möchte man die Abfrage auf eine bestimmte OU eingrenzen, dann kann man dies mit Hilfe des Parameters -SearchBase tun, also beispielsweise mit
-SearchBase "OU=Marketing,DC=contoso,DC=com"
Search-ADAccount statt Get-ADUser
Eine Alternative zum Aufruf von Get-ADUser besteht in der Verwendung von Search-ADAccount:
Search-ADAccount -PasswordNeverExpires -UsersOnly
Auch dieses Cmdlet unterstützt den Parameter -Searchbase, um die Suche auf bestimmte Bereiche einzuschränken.
Möchte man wissen, welche Konten kein Passwort benötigen, dann kann Search-ADAccount darauf keine Antwort geben, wohl aber Get-ADUser:
Get-ADUser -Filter 'PasswordNotRequired -eq $TRUE' | select Name
Problematische Einstellungen zurücksetzen
Möchte man die Risiken beseitigen, die mit diesen Einstellungen verbunden sind, dann kann PowerShell mit Set-ADUser die entsprechenden Attribute auch zurücksetzen:
Get-ADUser -Filter 'PasswordNeverExpires -eq $True' |
Set-ADUser -PasswordNeverExpires $False
In diesem Beispiel würde sämtlichen Konten in der Domäne, die bis dato kein Ablaufdatum für das Kennwort haben, ein solches wieder vorgeschrieben.
Nach dem gleichen Muster kann man das Recht auf die Anmeldung mit einem leeren Passwort widerrufen, indem man anstatt des Parameters -PasswordNeverExpires das erforderliche PasswordNotRequired verwendet. Der Aufruf eignet sich natürlich auch, um den umgekehrten Zweck zu erfüllen, wenn man als Wert $True angibt.
Täglich Know-how für IT-Pros mit unserem Newsletter
Ähnliche Beiträge
- UserAccountControl: Sicherheitseinstellungen für AD-Konten prüfen und ändern
- Wann haben Benutzer zuletzt ihr Passwort im Active Directory geändert?
- AD-Konten mit ChangePasswordAtLogon in PowerShell finden, Wechsel des Passworts erzwingen
- Konten im Active Directory entsperren oder aktivieren mit PowerShell
- Ablaufdatum von AD-Passwörtern in PowerShell auslesen
Weitere Links