Schnelldiagnose mittels Powershell anstatt über die Ereignisanzeige


Um einen schnellen Überblick über die größten Nöte eines Systems zu finden, kann man diese Powershell Befehle verwenden:

Genereller Überblick

get-eventlog –Logname System | where {$_.EntryType –eq ‚Error‘} | select –First 10

get-eventlog –Logname System | where {$_.EntryType –eq ‚Warning‘} | select –First 10

get-eventlog –Logname Application | where {$_.EntryType –eq ‚Error‘} | select –First 10

get-eventlog –Logname Application | where {$_.EntryType –eq ‚Warning‘} | select –First 10

get-eventlog -LogName Security | where {$_.Entrytype -ne "SuccessAudit"} | select –First 10

Seit Windows Vista und Server 2008 wurde die Ereignisanzeige massiv erweitert durch die Windowsereignisse.

Einen schnellen Überblick über Hyper-V Probleme bekommt mittels:

Get-WinEvent –ProviderName "*Hyper-V*"

oder wo ein besitmmter Computername auftaucht

Get-WinEvent –ProviderName "*Hyper-V*" | where {$_.Message –match "Computername"}

oder wo ein Fehler aufgetreten ist:

Get-WinEvent –ProviderName "*Hyper-V*" | where {$_.LevelDisplayName –eq "Fehler"}

Wenn man wissen möchte, was an einem bestimmten Tag geschah:

Get-WinEvent-ProviderName "*Hyper-V*" | where {(Get-Date $_.TimeCreated –format d) –eq (Get-Date 13.10.2012 –format d)}

Wenn man wissen möchte, was zu einer bestimmten Stunde passierte:

Get-WinEvent-ProviderName "*Hyper-V*" | where {(Get-Date $_.TimeCreated –format "yyyyMMddHH") –eq (Get-Date "13.10.2012 11:00" –format "yyyyMMddHH")}

Hierbei ist zu beachten, das alles was vor 11:00Uhr also um 10:59 geschah unberücksichtigt bleibt. Wenn aber ein Ereignis um 11:01Uhr Probleme machte, sollte man natürlich den Überprüfungszeitraum auf 10:xxUhr ausdehnen!

Genau dies macht dieser Befehl, es wird etwas mit Zeiten jongliert und zwar werden dem Ursprungsereignis immer 20 Minuten hinzuaddiert, dadurch rutscht ein Ereignis von 10:45Uhr in das 11:00Uhr Zeitfenster:

Get-WinEvent-ProviderName "*Hyper-V*" | where {(Get-Date (Get-Date $_.TimeCreated).AddMinutes(20) –format "yyyyMMddHH") –eq (Get-Date "13.10.2012 11:00" –format "yyyyMMddHH")}

Logischerweise fallen dann Ereignisse nach 11:40 unter den Tisch.

Wer kompliziertere Abfragen oder gar Remoteabfragen braucht, der sollte sich bei Get-WinEvent einen Filter basteln und diesen angeben, weitere Infos dazu: https://newyear2006.wordpress.com/2011/04/28/ereignisanzeige-query-builder-fr-powershell/

2 Antworten to “Schnelldiagnose mittels Powershell anstatt über die Ereignisanzeige”

  1. Quirel Says:

    Get-WinEvent -MaxEvents 1000 | select -Last 500 | sort TimeCreated -Descending | ft TimeCreated, ID, Message -AutoSize

    Um Events, aus einem bestimmten Zeitfenster chronologisch darzustellen.

  2. Quirel Says:

    Wenn man nur wissen will, was zu einem bestimmten Zeitpunkt passierte, dann ist diese Methode die schnellste:

    # gesucht werden alle Ereignisse zwischen 02:00 und 06:00
    $dateA = Get-date „05.03.2016 02:00“
    $dateE = $datea.AddTicks((New-TimeSpan -Hours 4).Ticks)
    get-winevent -FilterHashtable @{ProviderName=’*‘;StartTime=$dateA;EndTime=$dateE} -ErrorAction SilentlyContinue

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s


%d Bloggern gefällt das: