Ausgabe von Einträgen aus der Windows Ereignisanzeige eines Offlinesystems


Wenn man einen Rechner hat dessen Hardware OK aber dessen Windows System nicht mehr startet, dann hilft oft die Verwendung von Windows PE 2.x oder der Windows Vista DVD mit Computerreparaturoptionen und der Eingabeaufforderung weiter.

Oft ist es sinnvoll zu sehen, welche Ereignisse als letztes eingetreten sind. Dazu protokolliert Windows Vista jede Menge Infos in der Ereignisanzeige. Aber in einem Offlineszenario ist der Zugriff auf die Ereignisanzeige nicht so einfach. Aber wie immer gibt es eine Lösung.

Seit Windows Vista gibt es das Commandline Tool WEVTUTIL.EXE mit diesem lassen sich die EVTX-Dateien welche die Ereignisanzeigedaten enthalten auswerten. Das WEVTUTIL-Tool ist mächtig dafür aber auch kompliziert zu bedienen. Es findet übrigens auch Verwendung beim Windows Server 2008 Core.

http://technet.microsoft.com/en-us/library/cc732848.aspx

Führt man WEVTUTIL im Offlineszenario direkt aus, z. B. per

WEVTUTIL GLI SYSTEM

dann erhält man eine Fehlermeldung:

Fehler beim Lesen der Protokollstatusinformationen für Protokoll „SYSTEM“. Die Anforderung wird nicht unterstützt.

Wenn wir schon bei Fehlermeldungen sind, in einem normalen System bekommt man die Meldung

Fehler beim Lesen der Protokollstatusinformationen für Protokoll „systems“. Der angegebene Kanal wurde nicht gefunden. Prüfen Sie die Kanalkonfiguration.

wenn man z. B. systems anstatt system angegeben hat.

Gibt man eine falsche Datei oder eine Datei im alten W2K oder XP Format an, wird folgende Fehlermeldung angezeigt:

Fehler beim Lesen der Protokollstatusinformationen für Protokoll „SysEvent.Evt“.  Die Daten sind unzulässig.

Eine gültige Anzeige für den Parameter GLI sieht z. B. so aus:

creationTime: 2008-04-19T18:28:16.715Z
lastAccessTime: 2008-04-19T18:28:16.715Z
lastWriteTime: 2008-11-01T18:32:06.845Z
fileSize: 20975616
attributes: 32
numberOfLogRecords: 48475
oldestRecordNumber: 178373

Zurück zum Offlineszenario. Das Problem hier ist, dass wenn man WEVTUTIL benutzt, sich alles auf das WinPE System bezieht. Dort wird in der Regel das virtuelle Laufwerk X: angelegt, wo sich unter X:\WINDOWS\SYSTEM32\WINEVT\LOGS die LOG-Dateien befinden sollten. Doch das Verzeichnis ist leer. Für PE Systeme müssen allerdings Ereignisse nicht wirklich gespeichert werden, da es sich sowieso nur um temporäre Daten handelt.

Da man ja aber auf eine kaputte Standardinstallation zugreifen möchte, findet man also die EVTX-Dateien unter C:\WINDOWS\SYSTEM32\WINEVT\LOGS und durch einen speziellen Parameter /LF:TRUE, den viele WEVTUTIL Kommandos verstehen, kann man WEVTUTIL direkt auf Dateien mit der Endung EVTX loslassen.

So ist die korrekte Syntax für Infos über die SYSTEM-Ereignisse (der Pfad C:\WINDOWS\SYSTEM32\WINEVT\LOGS\SYSTEM.EVTX wurde leider umgebrochen, gehört aber immer alles in eine Zeile):

WEVTUTIL GLI C:\WINDOWS\SYSTEM32\WINEVT\LOGS\SYSTEM.EVTX /LF:TRUE

So und nun ans eingemachte. Eigentlich interessieren einen ja primär Fehler und Warnungen, diese bekommt man mit folgendem Konstrukt:

WEVUTIL QE C:\WINDOWS\SYSTEM32\WINEVT\LOGS\SYSTEM.EVTX /LF:TRUE /F:TEXT /Q:“*[System/Level=2]“

Damit werden alle Fehler aufgelistet die im Offlinesystem protokolliert wurden. Ist man an den Warnungen interessiert, verwendet man folgende Zeile:

WEVUTIL QE C:\WINDOWS\SYSTEM32\WINEVT\LOGS\SYSTEM.EVTX /LF:TRUE /F:TEXT /Q:“*[System/Level=3]“

Da im Extremfall ziemlich viele Infos ausgegeben werden, sollte man die Daten in eine Datei umlenken (pipen) um sie dann mit NOTEPAD anzuschauen.

Der Parameter /Q ist durch die Verwendung von XPath ziemlich mächtig, dafür aber auch etwas kompliziert. Weitere Infos zu Abfragen findet man hier: http://msdn.microsoft.com/en-us/library/aa385231(VS.85).aspx

Übrigens durch weglassen des Parameters /F:TEXT bekommt man reinstes XML, was für Dokumentations oder Auswertungszwecke interessant sein kann.

Was ist wenn das Offlinesystem Windows XP oder Windows 2000 sein sollte? Beide verwenden ein älteres von NT-Stammendes Format mit der Endung EVT. Das Verzeichnis für Windows XP lautet: C:\WINDOWS\SYSTEM32\CONFIG und bei Windows 2000: C:\WINNT\SYSTEM32\CONFIG. Mit dem Kommando EPL kann man auch dieses Problem lösen, der Artikel http://blogs.technet.com/askperf/archive/2007/10/12/windows-vista-and-exported-event-log-files.aspx beschreibt wie man das alte EVT- ins neue EVTX-Format konvertieren kann.

Noch weitere Infos zur Vertiefung mit Abfragen: http://technet.microsoft.com/de-de/magazine/cc160886.aspx

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: