Problem
Wann hat sich ein Benutzer oder Konto zuletzt am Active Directory angemeldet? Die Objekt-Registerkarte im ActiveDirectory Benutzer- und Computer SnapIn ist da nicht sondelrich auskunftsfreudig.
Die Objekteigenschaft „LastLogon“ lässt sich zwar an der PowerShell mittels „Get-ADUser“ auslesen, aber nur als Large-Integer, der die Anzahl von 100-Nanosekunden-Intervallen seit dem 1.1.601 in UTC anzeigt. Leicht esoterischer Wert …
Lösung
Dieses PowerShell-Script wirft den Wert lesbar raus und funktioniert auch außerhalb von Domänencontrollern (RSAT-Tools vorausgesetzt):
Import-Module activedirectory ([DateTime][long]( $(ForEach ($dc in ((Get-ADDomaincontroller -filter *).name)) { (Get-ADUser -Identity "administrator" -Properties "LastLogon" -server $dc).LastLogon } ) | Measure -Maximum).Maximum).AddYears(1600)
Oder für besonders faule Admins auch als Einzeiler:
([DateTime][long]($(ForEach($dc in ((Get-ADDomaincontroller -filter *).name)){(Get-ADUser -Identity "mroelz" -Properties "LastLogon" -server $dc).LastLogon})|Measure -Maximum).Maximum).AddYears(1600)
Es geht natürlich auch via CMD, also an der klassischen Kommandozeile:
wmic NetLogin where (name like "%<USERNAME>%") get name, lastlogon