PowerShell: Ablaufdatum des eigenen Kennworts ermitteln
Durch Richtlinien erzwungene, wechselnde Kennwörter sind in Active Directory Umgebungen ein probates Mittel, um den Kennwort-Hash eines Benutzers zyklisch zu ändern. Arbeitet man in vielen unterschiedlichen Umgebungen – bspw. im Support für Kunden – so entsteht oftmals die Frage, wie lange das eigene Kennwort eigentlich noch gültig ist.
Der folgende PowerShell-Befehl löst dieses Rätsel in kürzester Zeit. Dabei wird das Attribut msDS-UserPasswordExpiryTimeComputed des Benutzer-Objektes ausgelesen und die verbleibende Gültigkeit in Tagen berechnet:
([System.Security.Principal.WindowsIdentity]::GetCurrent().User).Value | get-aduser -Properties Displayname,PasswordLastSet,msDS-UserPasswordExpiryTimeComputed | Select-Object -Property Displayname,SamAccountName,PasswordLastSet,@{Name="ExpirationDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}},@{Name="Duration";Expression={$(New-TimeSpan -Start $(Get-Date) -End $([datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed"))).ToString("%d")+" days"}}
Das Ergebnis der Abfrage sieht dann in etwa so aus:
Mit dem aufgeführten PowerShell-Kommando kommt man relativ zügig zum gewünschten Ergebnis. Wer mag, kann den Befehl auch in Anmelde-Skripten integrieren, um dem Benutzer eine etwas vorausschauendere Information über das Kennwortalter zu geben.
Mit dem folgenden Kommando kann die Information im Übrigen ebenfalls einfach abgerufen werden:
net user %username% /domain
Einen Blog am Leben zu erhalten kostet Zeit und Geld. Da ich auf meiner Seite weder Werbung einbinde, noch andersweitige Zuwendungen erhalte, freue ich mich über jede kleine Spende. Einfach und unkompliziert geht das über PayPalMe. Du unterstützt damit diesen Blog. Vielen Dank.