Bents Blog

 

Ein IT Blog mit Themen aus dem Windows Server Umfeld.

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:

Anzeige und Berechnung der Gültigkeit des Kennwortes

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.