Wie man Systemereignisse effektiv mit PowerShell protokolliert
PowerShell ist tatsächlich ziemlich nützlich, wenn Sie jemals überprüfen mussten, wann Ihr PC zuletzt neu gestartet wurde oder Systemabstürze untersuchen wollten. Es ist nicht immer offensichtlich, wie man diese Informationen findet, ohne die Ereignisprotokolle manuell zu durchsuchen. Hier kommen Skripte und Befehle ins Spiel – insbesondere, wenn Sie eine schnelle und wiederholbare Methode benötigen. Allerdings kann PowerShell anfangs etwas verwirrend sein, vor allem, wenn Sie mit den Befehlen oder den Ereignis-IDs nicht vertraut sind. Manchmal funktionieren die Befehle nicht sofort wie erwartet oder müssen je nach Windows-Version oder -Konfiguration angepasst werden. Sobald Sie sich aber damit vertraut gemacht haben, erweist es sich als überraschend leistungsstark für die Fehlerbehebung und Protokollierung.
So protokollieren Sie Ihre letzten Neustart- und Herunterfahrereignisse in Windows mit PowerShell
Ermitteln Sie mithilfe von PowerShell, wann Ihr Computer zuletzt neu gestartet wurde.
Diese Methode funktioniert, weil Windows beim Starten und Herunterfahren des Systems bestimmte Ereignis-IDs protokolliert. In den meisten Konfigurationen steht Ereignis-ID 6005 für „Ereignisprotokolldienst gestartet“ (PC-Start) und ID 6006 für „Ereignisprotokolldienst beendet“ (Herunterfahren).Ereignis-ID 6008 signalisiert ein unerwartetes Herunterfahren – hilfreich bei der Fehlersuche in Abstürzen oder Abstürzen, die nicht dem normalen Herunterfahren entsprechen. Auf manchen Rechnern werden diese Ereignisse nicht immer sofort angezeigt oder die Protokolle werden überschrieben. Für die meisten alltäglichen Aufgaben ist dies jedoch eine schnelle Möglichkeit, dies herauszufinden.
- Öffnen Sie Windows PowerShell – diese finden Sie üblicherweise unter Start > Windows PowerShell oder können Sie durch Drücken Win + Xder entsprechenden Tastenkombination im Menü aufrufen. Für detailliertere Einstellungen empfiehlt sich die Verwendung des Windows Terminals mit PowerShell.
- Führen Sie den folgenden Befehl aus, um das letzte Startereignis abzurufen:
- Denken Sie daran, dass Befehle wie `Get-WinEvent` neuer und flexibler sind, insbesondere für gefilterte Suchvorgänge.
- Protokolle können manuell oder mithilfe von Bereinigungstools gelöscht werden, daher sind die Informationen nicht immer hundertprozentig zuverlässig – nur zur Information.
- Bei manchen Konfigurationen müssen Sie PowerShell möglicherweise als Administrator ausführen, um auf bestimmte Protokolle oder Ereignisse zuzugreifen.
Get-WinEvent -LogName System | Where-Object {$_. Id -eq 6005 -or $_. Id -eq 6006 -or $_. Id -eq 6008} | Select-Object -Last 1 | Format-List
Hiermit wird das letzte protokollierte Ereignis für Systemstart/Systemabsturz abgerufen.Warum ? Weil diese Ereignisse genau angeben, wann Windows zuletzt gestartet oder heruntergefahren wurde, einschließlich unerwarteter Ereignisse wie Abstürze.Wann ? Wenn das Protokoll aktuelle Einträge enthält, was in der Regel der Fall ist, es sei denn, es ist schon länger her oder die Protokolle wurden gelöscht.Was ist zu erwarten ? Eine detaillierte Aufschlüsselung des letzten Absturzes oder Neustarts inklusive Zeitstempel. Manchmal werden mehrere Zeilen angezeigt, manchmal nur eine – dies hängt vom System und der Protokolllänge ab.
Überprüfung kürzlich erfolgter Abschaltungen mit PowerShell
Wenn Sie wissen möchten, wann der PC zuletzt ausgeschaltet wurde, einschließlich unerwarteter Abschaltungen, können Sie nach Ereignis-ID 13 filtern. Diese steht für „Das Betriebssystem wurde um Systemzeit xyz heruntergefahren“.Auf manchen Systemen ist diese Methode sogar zuverlässiger. Führen Sie einfach folgenden Befehl aus:
Get-EventLog -Newest 10 -LogName "System" | Where-Object {$_. EventID -eq 13}
Dieser Befehl zeigt die letzten zehn Herunterfahrvorgänge an – in der Regel ausreichend, um unerwartete Einträge zu erkennen. Die Ausgabe ist übersichtlich und direkt interpretierbar. Beachten Sie, dass das Get-EventLogCmdlet unter neueren Windows-Versionen wie Windows 10/11 möglicherweise veraltet ist und durch eine andere Methode ersetzt wurde.Get-WinEventEs funktioniert aber weiterhin auf den meisten Systemen.
So sehen Sie den letzten Systemstart
Das Startprotokoll ist im Grunde dasselbe; man sucht lediglich nach der Ereignis-ID 12, die besagt: „Das Betriebssystem wurde um die Systemzeit xyz gestartet.“ Führen Sie einfach Folgendes aus:
Get-EventLog -Newest 10 -LogName "System" | Where-Object {$_. EventID -eq 12}
Dadurch erhalten Sie einen klaren Überblick darüber, wann das System zuletzt hochgefahren wurde, insbesondere wenn Sie Startprobleme beheben oder einfach nur die Betriebszeit überprüfen möchten.
Zusätzliche Tipps, falls Skripte nicht ausreichen
Manchmal liefern PowerShell-Befehle uneinheitliche Ergebnisse, weil Protokolle überschrieben oder beschädigt sind. In solchen Fällen ist die manuelle Überprüfung der Ereignisanzeige (suchen Sie im Startmenü nach „Ereignisanzeige“ und gehen Sie dann zu Windows-Protokolle > System ) oft schneller als die Verwendung von Befehlen. Wenn diese Informationen wirklich wichtig sind, können Sie die Überprüfung auch mit Skripten automatisieren oder regelmäßige Berichte planen.
Ähnliche Artikel
War dieser Artikel hilfreich?