Powershell: Report aller Konten ohne Passwortaging
Für ein Audit oder eine anstehende Umstrukturierung einer Domäne kann es notwendig sein alle Konten zu erfassen, bei denen das Kennwort nie abläuft (ohne Passwort-Aging).
Die Lösung ist ein Powershell-Script, das man z.B. auf einem Windows 7 Client ausführen kann.
Zunächst importiert öffnet man ein PowerShell ISE Fenster und aktiviert das Active Directory Modul mit:
Import-Module ActiveDirectory
Die Abfrage an sich sieht so aus:
Search-ADAccount –PasswordNeverExpires
Allerdings ist das Ergebnis eine stumpfe Auflistung in der PowerShell Box, die man so erst einmal nicht gut gebrauchen kann.
Besser ist es alles in eine CSV-Datei zu kopieren, die man dann in Excel importieren kann.
Search-ADAccount -PasswordNeverExpires | Select-Object Name,ObjectClass,PasswordNeverExpires | Export-Csv -Encoding UTF8 „$env:homedrive$env:homepath\Documents\users_no_password_expiration.csv“ –NoTypeInformation
Was macht die Abfrage jetzt eigentlich?
Also zunächst die Abfrage, wie wir sie oben schon angegeben hatten. Von den Ergebnissen nehmen wir jetzt Namen, Objekt-Klasse und die gewünschte Password-Eigenschaft. Darauf folgt die Ausgabe der Ergebnisse in eine CSV Datei, wobei wir UTF8 als Kodierung mitgeben. Damit sollten Umlaute kein Problem sein. Jetzt noch die Ausgabe in den Dokumentenordner des Benutzers.
Somit landet die erzeugte CSV nicht irgendwo am Rechner, sondern im Benutzerprofil des ausführenden Benutzers. Mit dem Argument “-NoTypeInformation” wird man eine Zeile los, die ansonsten bei der Abfrage ganz oben im Dokument eingefügt wird.