PowerShell Befehlsreferenz für Ereignisprotokolle auswerten

Aktualisiert am 23.10.2026 · Lesezeit ca. 4 Min. · Niveau: Experten · von Viktor Tribus, IT-Tribus Nideggen

In der täglichen Arbeit ist das Auswerten von Ereignisprotokollen ein wichtiger Bestandteil der Systemadministration und -überwachung. PowerShell bietet eine umfassende Palette an Cmdlets, die Ihnen dabei helfen können, Protokolle effizient zu durchsuchen und auszuwerten. Diese Befehlsreferenz richtet sich vor allem an Experten im Home-Office-Umfeld und erläutert, wie Sie diese Cmdlets verwenden können, um Ihre Systeme sicher und performant zu betreiben. Im Europäischen Monat der Cybersicherheit (Oktober) ist es besonders wichtig, auf die Sicherheit Ihrer Systeme zu achten – und das Auswerten von Ereignisprotokollen gehört dazu.

So nutzen Sie diese Befehlsübersicht

Diese Übersicht richtet sich an Administratoren mit Administratorrechten. Die aufgeführten Cmdlets laufen in PowerShell-Konsolen, die mit erhöhten Rechten gestartet wurden. Es wird empfohlen, vor jedem Einsatz einen Wiederherstellungspunkt zu erstellen oder ein Backup des Systems durchzuführen.

Get-EventLog: Grundlegende Protokollabfrage

Befehl Beschreibung Beispiel
Get-EventLog -LogName System Liest alle Ereignisse aus dem Systemprotokoll.
PowerShell (als Administrator)
# Liest alle Einträge im Systemprotokoll
Get-EventLog -LogName System
Get-EventLog -LogName Application | Where-Object Filtriert Fehlerereignisse aus dem Anwendungsprotokoll.
PowerShell (als Administrator)
# Liest alle Fehler im Anwendungsprotokoll
Get-EventLog -LogName Application | Where-Object 
Get-EventLog -LogName Security -InstanceId 4625 Liest Sicherheitsereignisse mit der InstanceId 4625 (Fehlerhafte Anmeldeversuche).
PowerShell (als Administrator)
# Liest alle Fehlerhafte Anmeldeversuche
Get-EventLog -LogName Security -InstanceId 4625
Get-EventLog -LogName System -After (Get-Date).AddDays(-7) Liest Ereignisse aus dem letzten Woche.
PowerShell (als Administrator)
# Liest alle Ereignisse der letzten Woche im Systemprotokoll
Get-EventLog -LogName System -After (Get-Date).AddDays(-7)
Get-EventLog -LogName Application -Newest 10 Liest die zehn neuesten Einträge aus dem Anwendungsprotokoll.
PowerShell (als Administrator)
# Liest die letzten 10 Einträge im Anwendungsprotokoll
Get-EventLog -LogName Application -Newest 10
Get-EventLog -LogName System | Measure-Object Zählt die Gesamtzahl der Ereignisse im Systemprotokoll.
PowerShell (als Administrator)
# Zählt die Einträge im Systemprotokoll
Get-EventLog -LogName System | Measure-Object
Get-EventLog -LogName Application | Group-Object Source Klassifiziert Ereignisse nach Quelle.
PowerShell (als Administrator)
# Klassifiziert die Einträge im Anwendungsprotokoll nach Quelle
Get-EventLog -LogName Application | Group-Object Source
Get-EventLog -LogName Security | Sort-Object TimeGenerated -Descending Schreibt Ereignisse des Sicherheitsprotokolls in absteigender Reihenfolge.
PowerShell (als Administrator)
# Schreibt die Einträge im Sicherheitsprotokoll sortiert nach Zeit
Get-EventLog -LogName Security | Sort-Object TimeGenerated -Descending

Get-WinEvent: Erweiterte Protokollabfrage

Befehl Beschreibung Beispiel
Get-WinEvent -LogName System Liest alle Ereignisse aus dem Systemprotokoll (Windows Vista und höher).
PowerShell (als Administrator)
# Liest alle Einträge im Systemprotokoll
Get-WinEvent -LogName System
Get-WinEvent -FilterHashtable @ Filtriert Fehlerereignisse aus dem Anwendungsprotokoll.
PowerShell (als Administrator)
# Liest alle Fehler im Anwendungsprotokoll
Get-WinEvent -FilterHashtable @
Get-WinEvent -FilterXPath „*[System[(Level=4 or Level=0)]]" -MaxEvents 10 Liest die zehn neuesten Warn- oder Informationseinträge.
PowerShell (als Administrator)
# Liest die letzten 10 Warnungen und Informationen
Get-WinEvent -FilterXPath "*[System[(Level=4 or Level=0)]]" -MaxEvents 10
Get-WinEvent -LogName Security -FilterXPath „*[EventData/Data[@Name='Outcome'] and text()='0′]" Filtriert Sicherheitsereignisse, bei denen der Ausgang negativ war.
PowerShell (als Administrator)
# Liest alle Ereignisse mit negativem Ergebnis im Sicherheitsprotokoll
Get-WinEvent -LogName Security -FilterXPath "*[EventData/Data[@Name='Outcome'] and text()='0']"
Get-WinEvent -ListLog * | Select-Object Logname Liest die Namen aller Protokolle auf dem System.
PowerShell (als Administrator)
# Liest alle verfügbaren Protokollnamen
Get-WinEvent -ListLog * | Select-Object LogName
Get-WinEvent -FilterHashtable @ Liest Ereignisse des letzten Tages.
PowerShell (als Administrator)
# Liest alle Einträge der letzten Stunde im Systemprotokoll
Get-WinEvent -FilterHashtable @
Get-WinEvent -FilterXPath „*[EventData/Data[@Name='SubjectUserName'] and text()='SYSTEM']" Filtriert Ereignisse, bei denen das Subjekt „SYSTEM" ist.
PowerShell (als Administrator)
# Liest alle Ereignisse mit dem Benutzernamen SYSTEM
Get-WinEvent -FilterXPath "*[EventData/Data[@Name='SubjectUserName'] and text()='SYSTEM']"
Get-WinEvent -LogName System | Where-Object Liest Ereignisse mit der ID 100 aus dem Systemprotokoll.
PowerShell (als Administrator)
# Liest alle Einträge mit der ID 100 im Systemprotokoll
Get-WinEvent -LogName System | Where-Object 

Export-Csv: Protokolldaten exportieren

Befehl Beschreibung Beispiel
Get-EventLog -LogName System | Export-Csv -Path „C:\SystemEvents.csv" -NoTypeInformation Exportiert das Systemprotokoll in eine CSV-Datei.
PowerShell (als Administrator)
# Exportiert alle Einträge im Systemprotokoll als CSV
Get-EventLog -LogName System | Export-Csv -Path "C:\SystemEvents.csv" -NoTypeInformation
Get-WinEvent -FilterHashtable @ | Export-Csv -Path „C:\AppEventsLastWeek.csv" Exportiert Anwendungsereignisse der letzten Woche als CSV.
PowerShell (als Administrator)
# Exportiert alle Einträge der letzten Woche im Anwendungsprotokoll
Get-WinEvent -FilterHashtable @ | Export-Csv -Path "C:\AppEventsLastWeek.csv"
Get-WinEvent -FilterXPath „*[System[(Level=2)]]" | Export-Csv -Path „C:\ErrorEvents.csv" Exportiert alle Fehlerereignisse als CSV.
PowerShell (als Administrator)
# Exportiert alle Fehlerereignisse als CSV
Get-WinEvent -FilterXPath "*[System[(Level=2)]]" | Export-Csv -Path "C:\ErrorEvents.csv"
Get-EventLog -LogName Security -InstanceId 4625 | Export-Csv -Path „C:\FailedLoginAttempts.csv" Exportiert alle Fehlerhafte Anmeldeversuche als CSV.
PowerShell (als Administrator)
# Exportiert alle Fehlerhafte Anmeldeversuche als CSV
Get-EventLog -LogName Security -InstanceId 4625 | Export-Csv -Path "C:\FailedLoginAttempts.csv"

Praxisbeispiele: Befehle kombinieren

Aufgabe 1: Fehlerereignisse des letzten Tages exportieren

Diese Aufgabe zeigt, wie Sie alle Fehlerereignisse des letzten Tages aus dem Anwendungsprotokoll exportieren können.

PowerShell (als Administrator)
# Liest alle Fehler im Anwendungsprotokoll des letzten Tages
Get-WinEvent -FilterHashtable @ | 
# Exportiert die Fehler als CSV-Datei
Export-Csv -Path "C:\ErrorEventsLastDay.csv" -NoTypeInformation

Aufgabe 2: Systemeinträge mit spezifischer EventID filtern und exportieren

Diese Aufgabe zeigt, wie Sie Systemereignisse mit der EventID 100 aus den letzten sieben Tagen filtern und als CSV-Datei exportieren können.

PowerShell (als Administrator)
# Liest alle Einträge mit der ID 100 im Systemprotokoll der letzten Woche
Get-WinEvent -FilterHashtable @ | 
# Exportiert die Filterergebnisse als CSV-Datei
Export-Csv -Path "C:\FilteredEvents.csv" -NoTypeInformation

Aufgabe 3: Anzahl der Fehlerereignisse im Anwendungsprotokoll zählen und exportieren

Diese Aufgabe zeigt, wie Sie die Anzahl der Fehlerereignisse im Anwendungsprotokoll zählen und das Ergebnis als CSV-Datei speichern können.

PowerShell (als Administrator)
# Liest alle Einträge mit Fehlern aus dem Anwendungsprotokoll
$ErrorCount = Get-WinEvent -FilterHashtable @ | Measure-Object

# Erstellt ein Hash-Tabelle mit der Anzahl der Fehler
$Result = @

# Exportiert das Ergebnis als CSV-Datei
$Result.GetEnumerator() | 
Export-Csv -Path "C:\ErrorCount.csv" -NoTypeInformation

Vorsicht bei diesen Befehlen

Einige der aufgeführten Cmdlets können gefährlich sein, insbesondere wenn sie ohne die richtigen Filter oder Parameter verwendet werden. Zum Beispiel kann das Exportieren von Protokollen zu großen Dateien führen und somit Speicherplatzressourcen beanspruchen.

  • Export-Csv: Achten Sie darauf, dass Ihre Ausgaben nicht unnötig groß sind. Verwenden Sie Filter, um die Größe der Exportdatei einzuschränken.
  • Get-WinEvent -FilterXPath: XPath-Abfragen können komplex sein und führen zu Fehlern oder unerwarteten Ergebnissen. Testen Sie Ihre Abfragen vor dem Einsatz in einer produktiven Umgebung.
  • Measure-Object: Achten Sie darauf, dass Sie die Anzahl der Ereignisse nicht übermäßig hoch schätzen, da dies zu Leistungsproblemen führen kann.

Häufige Fragen

Wie unterscheiden sich Get-EventLog und Get-WinEvent?

Get-EventLog ist das traditionelle Cmdlet zur Abfrage von Ereignisprotokollen, während Get-WinEvent eine erweiterte Variante für Windows Vista und höher ist. Get-WinEvent bietet zusätzliche Filteroptionen wie XPath-Abfragen.

Kann ich Protokolldaten direkt in ein Textdokument exportieren?

Ja, Sie können die Ergebnisse von Get-EventLog oder Get-WinEvent mit dem Cmdlet Out-File direkt in ein Textdokument exportieren. Zum Beispiel:

PowerShell (als Administrator)
# Exportiert das Systemprotokoll als Textdatei
Get-EventLog -LogName System | Out-File "C:\SystemEvents.txt"

Wie kann ich sicherstellen, dass meine Protokolle nicht gelöscht werden?

Sicherstellen, dass Ihre Protokolle nicht gelöscht werden, erfordert eine sorgfältige Konfiguration der Ereignisprotokollierung. Verwenden Sie die Einstellungen in der Windows-Ereigniserfassungs-Konsole oder PowerShell-Cmdlets wie Set-WinEvent, um das Protokollverhalten anzupassen.

Gibt es eine Möglichkeit, Ereignisse von entfernten Systemen abzurufen?

Ja, Sie können mithilfe der Parameter -ComputerName in Get-EventLog und Get-WinEvent Ereignisse von entfernten Computern abrufen. Zum Beispiel:

PowerShell (als Administrator)
# Liest die Systemereignisse vom Computer 'REMOTEPC'
Get-WinEvent -ComputerName REMOTEPC -FilterHashtable @

Fazit

Das Auswerten von Ereignisprotokollen mit PowerShell bietet eine leistungsstarke Möglichkeit, die Gesundheit und Sicherheit Ihrer Systeme zu überwachen. Diese Befehlsreferenz soll Ihnen dabei helfen, Ihre tägliche Arbeit effizienter durchzuführen und mögliche Probleme frühzeitig zu erkennen. Sollten Sie Unterstützung bei der Umsetzung benötigen, können Sie sich gerne an IT-Tribus in Nideggen wenden.

Quellen und weiterführende Informationen

Hinweis: Dieser Beitrag wurde am 23.10.2026 mit KI-Unterstützung erstellt, auf Basis der genannten Quellen eigenständig formuliert und redaktionell von IT-Tribus betreut. Alle Angaben ohne Gewähr – bitte prüfen Sie Befehle vor dem Einsatz in produktiven Umgebungen und legen Sie vorher eine Sicherung an.

Benötigen Sie Unterstützung bei PowerShell Ereignisprotokolle?

IT-Tribus ist Ihr IT-Dienstleister aus Nideggen. Vor Ort helfen wir in Düren, im Kreis Düren und in der Region Aachen – Monitoring und Fernwartung mit NinjaOne bieten wir Unternehmen auch überregional an.

Kostenlose Erstanalyse anfordern
📞 02427 9099860