Zurück zu PowerShell
Diagnose Fortgeschritten

EventLog & Fehleranalyse

Windows-Ereignisprotokolle auswerten — Fehler finden, Bluescreens analysieren, Logins prüfen.

Get-EventLog vs. Get-WinEvent

MerkmalGet-EventLogGet-WinEvent
VerfügbarkeitÄltere Logs (System, Application)Alle Logs inkl. moderner
PerformanceLangsamerSchneller, filterbar am Provider
EmpfehlungEinfache AbfragenStandard für alles

Grundlegende Abfragen

# Letzte 20 Fehler im System-Log
Get-WinEvent -LogName System -MaxEvents 20 |
    Where-Object Level -eq 2 |
    Format-Table TimeCreated, Id, Message -Wrap

# Fehler der letzten 24 Stunden
$seit = (Get-Date).AddHours(-24)
Get-WinEvent -FilterHashtable @{
    LogName   = 'System'
    Level     = 2  # Error
    StartTime = $seit
}

# Kritische Ereignisse (Level 1)
Get-WinEvent -FilterHashtable @{
    LogName = 'System'
    Level   = 1
} -MaxEvents 10

Praxis: Letzte Bluescreens finden

Get-WinEvent -FilterHashtable @{
    LogName   = 'System'
    ProviderName = 'Microsoft-Windows-WER-SystemErrorReporting'
} -MaxEvents 5 | Format-List TimeCreated, Message

Praxis: Fehlgeschlagene Anmeldeversuche

# Event-ID 4625 = fehlgeschlagene Anmeldung
Get-WinEvent -FilterHashtable @{
    LogName = 'Security'
    Id      = 4625
} -MaxEvents 20 | Select-Object TimeCreated,
    @{N='Benutzer';E={$_.Properties[5].Value}},
    @{N='Quelle';E={$_.Properties[19].Value}}

Ergebnisse exportieren

# Als CSV exportieren
Get-WinEvent -LogName System -MaxEvents 100 |
    Where-Object Level -le 2 |
    Export-Csv C:\Temp\fehler.csv -NoTypeInformation -Encoding UTF8

Tipp: Level-Werte: 1 = Kritisch, 2 = Fehler, 3 = Warnung, 4 = Information. -FilterHashtable ist deutlich schneller als Where-Object, weil der Filter direkt am Provider greift.