Gerade für Administratoren, die in einem Netzwerk mit einer AD-Struktur (Active Direcotry) arbeiten kann es wünschenswert sein, wenn sie relativ schnell und einfach das letzte Login-Datum oder auch die letzte Login-Zeit abfragen können. Standardmäßig ist dies leider gar nicht so einfach möglich, aber die PowerShell bringt mit dem Befehl
das richtige Werkzeug mit. Um an die LastLogon-Daten des Users heranzukommen, müsst Ihr zuerst eine PowerShell Konsole aufrufen. Wichtig ist, dass diese PowerShell Console als Administrator ausgeführt wird, andernfalls schlagen die folgenden Abfragen fehlt.
Anschließend muss zunächst das Active Directory Module in die PowerShell Konsole geladen werden, damit Ihr in der PowerShell Sitzung auch die Active-Directory Befehle nutzen könnt. Dies erfolgt mit dem Befehl
Import-Module ActiveDirectory
Das laden des Moduls erfolgt innerhalb von Sekunden. Wir haben Euch den gesamten Vorgang vom Laden des AD-Moduls bis zur Abfrage der „letzten Logindaten“ hier nachfolgend einmal an einem Beispiel abgebildet.
Nach dem Import des AD-Moduls könnt Ihr nun den folgenden Befehl absetzen.
Get-ADUser „USERNAME“ -Properties LastLogonDate | FT -Property Name, LastLogonDate -A
Dies gibt Euch, wie Ihr in dem obigen Beispiel sehen könnt, das „LastLogonDate“ und auch die Uhrzeit an. Für den Platzhalter „USERNAME“ müsst Ihr natürlich den Usernamen eingeben, der abgefragt werden soll. Der Domainname muss bei der Abfrage nicht zwingend mit angegeben werden.
Im zweiten Beispiel haben wir einen Usernamen abgefragt, der sich noch nie angemeldet hatte, somit wird auch kein Ergebnis ausgegeben.
Wenn Ihr z.B. alle User mit Logon-Daten ausgegeben haben wollt, die mit einem speziellen Vornamen anfangen, dann lautet der Befehl wie folgt.
Get-ADUser -Filter {GivenName -eq „Peter“} -Properties LastLogonDate | FT -Property Name, LastLogonDate -A
Das gleiche könnt Ihr natürlich auch über den Nachnamen durchführen, dann müsst Ihr lediglich den Filernamen „GivenName“ gegen „Surname“ austauschen.
Weitere interessante PowerShell Befehle findet Ihr auch in diesen Beiträgen.
– Dateirechte mit der PowerShell anzeigen
– WindowsUpdate.log bei Windows 10 auslesen bzw. per PowerShell umformatieren
– Windows Rollen und Features mit der PowerShell installieren
– Computer Systeminformationen mit der PowerShell auslesen
– Exchange Kontingente (Quota) Einstellungen per PowerShell abfragen
– Mit WINRM den Windows Client für Remote PowerShell Kommandos vorbereiten
– Mit der PowerShell lokale User und Gruppen bearbeiten
– Windows Systemlaufzeit per PowerShell ermitteln
– Windows 10 System-Wiederherstellungspunkt mit der PowerShell erstellen
– Windows herunterfahren und neu starten mit PowerShell Befehlen
– Windows Komponentenstore reparieren mit DISM und PowerShell Befehle
– UAC (Benutzerkontensteuerung) per PowerShell oder Registry abschalten bei Windows 10
– PowerShell Befehl zum Deaktivieren der Firewall
Dabei tritt immer noch das gleiche Problem wie seit Jahren auf. weil „LastLogon“ nicht repliziert wird:
Der Befehl fragt _irgendeinen_ DC ab und nimmt dessen Daten. Hat sich der User bei einem anderen DC zuletzt gemeldet, bekommt man also _falsche_ Daten bis hin zu „hat sich nie angemeldet“ samt Folgen („Account wird nicht benutzt? Löschen!“).
Also muss man in einer Schleife alle DCs einzeln abfragen und das letzte Datum ausgeben.
Ich habe mir mein (VBS-)Skript mit Hilfe von https://www.rlmueller.net/Last%20Logon.htm gebastelt. Man ist ja schreibfaul…;-)
PS, und kein Kommentar zum Thema selbst:
„Ihr Kommentar wartet auf Modertaion.“ könnte gleich mal korrigiert werden.