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
Trackback: URL für diesen Eintrag Tags: Active-Directory, Passwort, PowerShell