Grundlagen
Mit der Ereignisanzeige erhält man Zugriff auf die aufgezeichneten Ereignisinformationen. Neben den Windows Protokollen sind auch die Anwendungs- und Dienstprotokolle sichtbar.
Mit Abonnements kann man sich Ereignisse von anderen Servern auf einen zentralen Server weiterleiten lassen. Die Ereignisanzeige ermöglicht auch, dass beim Eintreffen eines bestimmten Events ein Programm gestartet wird, eine Meldung angezeigt wird oder eine E-Mail versendet wird. Detaillierte Informationen zu der Ereignisanzeige und dessen Ausgaben findet Ihr in diesem Artikel.

Zum Artikel: Windows 10 Fehlermeldungen finden
Zugriff mit der PowerShell
Mit dem PowerShell Cmdlet Get-Eventlog
kann man nun direkt auf die Ereignisanzeige zugreifen. Dieses Cmdlet benötigt natürlich noch das Protokoll, auf welches es zugreifen soll. Zur Auswahl stehen hier natürlich sämtliche Protokolle wie z. B. System, Andwendung, Installation etc..
PS C:\UsersMarkus> Get-Eventlog Cmdlet Get-EventLog an der Befehlspipelineposition 1 Geben Sie Werte für die folgenden Parameter an: LogName:
Nach diesem Aufruf möchte die PowerShell eben ein Protokoll, von welchem es sämtliche Einträge auslesen soll. Die Liste kann allerdings sehr lang und unübersichtlich sein. Besser wäre es, wenn man das Ganze etwas sortiert. Man könnte sich z. B. nur die letzten 20 ausgeben lassen. Hierzu verwendet man das Argument newest
mit dem Parameter 20.
Get-EventLog System -Newest 20 Index Time EntryType Source InstanceID Message ----- ---- --------- ------ ---------- ------- 84783 Aug 02 09:38 Information Service Control M... 1073748860 Dienst "Diagnosesystemhost" befindet sich jetzt im Status "Beendet". 84782 Aug 02 09:32 Information Service Control M... 1073748860 Dienst "WinHTTP-Web Proxy Auto-Discovery-Dienst" befindet sich jetzt im Status... 84781 Aug 02 09:29 Information Service Control M... 1073748860 Dienst "Tablet PC-Eingabedienst" befindet sich jetzt im Status "Ausgeführt". 84780 Aug 02 09:24 Information Service Control M... 1073748860 Dienst "Enumeratordienst für tragbare Geräte" befindet sich jetzt im Status "B... 84779 Aug 02 09:23 Information Service Control M... 1073748860 Dienst "Anwendungsinformationen" befindet sich jetzt im Status "Ausgeführt". 84778 Aug 02 09:22 Information Service Control M... 1073748860 Dienst "Anwendungserfahrung" befindet sich jetzt im Status "Ausgeführt". 84777 Aug 02 09:20 Information Service Control M... 1073748860 Dienst "Anwendungserfahrung" befindet sich jetzt im Status "Beendet". 84776 Aug 02 09:11 Information Service Control M... 1073748860 Dienst "Unterstützung in der Systemsteuerung unter Lösungen für Probleme" befi. . .
PowerShell Ausgabe Filtern
Aber auch diese Ausgabe ist noch etwas sehr unübersichtlich. Vor allem werden die Ereignisse nicht nach deren Ereignistyp kategorisiert. (Ereignistypen wären z. B. Fehler, Warnung, Information etc.) Sinnvoller ist es, die Ereignisse eines bestimmten Typs aufzurufen.
Hierzu benötigt man zunächst das Cmdlet where-Object
. Anschließend werden die Ergebnisse nach deren EntryType
durchsucht. Unter EntryType versteht man eigentlich nix anderes als den Typ des Ereignissen (z.B. Error, Information..) Mittels der Abfrage nach einem Fehler (Error) kann man sich nun die Ergebnisse ausgeben lassen. Ein Vergleich auf Stringbasis (also Text) erfolgt mit -match
. Die Befehle werden natürlich wieder mit der Pipe |
verbunden. Weiter Informationen zur Pipeline findet ihr im folgenden Artikel:
Zum Artikel: Powershell Pipeline richtig verwenden
PS C:\UsersMarkus> Get-EventLog System -Newest 2000 | Where-Object {$_.EntryType -match "Error"} Index Time EntryType Source InstanceID Message ----- ---- --------- ------ ---------- ------- 84961 Aug 03 09:07 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 84791 Aug 02 09:55 Error Schannel 36887 Es wurde eine schwerwiegende Warnung empfangen: 40. 84790 Aug 02 09:55 Error Schannel 36887 Es wurde eine schwerwiegende Warnung empfangen: 112. 84748 Aug 02 08:59 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 84497 Aug 01 16:16 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 84305 Jul 31 13:10 Error bowser 3221233475 Der Hauptsuchdienst erhielt eine Serverankündigung vom Computer "ZENBOOK",... 84213 Jul 31 07:43 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 84057 Jul 30 21:51 Error bowser 3221233475 Der Hauptsuchdienst erhielt eine Serverankündigung vom Computer "ZENBOOK",... 84052 Jul 30 20:14 Error bowser 3221233475 Der Hauptsuchdienst erhielt eine Serverankündigung vom Computer "ZENBOOK",... 83938 Jul 30 11:58 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 83733 Jul 29 08:06 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 83359 Jul 28 07:22 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund... 83107 Jul 27 08:29 Error DCOM 3221235488 Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefund...
Eine schönere und detaillierte Ausgabe erhält man, wenn man die Ergebnisse noch mit Format-List
in eine übersichtlichere Form bringt.
PS C:\UsersMarkus> Get-EventLog System -Newest 2000 | Where-Object {$_.EntryType -match "Error"} | Format-List Index : 84961 EntryType : Error InstanceId : 3221235488 Message : Die Beschreibung für Ereignis-ID -1073731808 in Quelle DCOM wurde nicht gefunden. Der lokale Computer hat möglicherweise nicht die notwendigen Registrierungsinformationen oder Meldungs-DLL-Dateien, um die Meldung anzuzeigen, oder Sie sind nicht berechtigt, darauf zuzugreifen. Die folgenden Informationen sind Teil des Ereignisses:'Anwendungsspezifisch', 'Lokal', 'Start', '{C97FCC79-E628-407D-AE68-A06AD6D8B4D1}', '{344ED43D-D086-4961-86A6-1106F4ACAD9B}', 'NT-AUTORITÄT', 'SYSTEM', 'S-1-5-18', 'LocalHost (unter Verwendung von LRPC)' Category : (0) CategoryNumber : 0 ReplacementStrings : {Anwendungsspezifisch, Lokal, Start, {C97FCC79-E628-407D-AE68-A06AD6D8B4D1}...} Source : DCOM TimeGenerated : 03.08.2014 09:07:25 TimeWritten : 03.08.2014 09:07:25 UserName : NT-AUTORITÄTSYSTEM
Ereignisse mit der PowerShell speichern
Es bietet sich hier natürlich auch noch die Möglichkeit an, die Einträge separat in eine Textdatei zu speichern. Dies ist z. B. sinnvoll, wenn man die Ereignisse sammeln möchte, um ggf. später nochmal darauf zugreifen zu können. Der obige Befehl wird einfach erweitert, indem man nach einer erneuten Weiterleitung – also eine Pipe – das Cmdlet Out-File
mit einem Speicherort und natürlichen einen Namen der Datei angibt. Man sollte aber unbedingt beachten, dass man an den angegebenen Speicherort auch die entsprechenden Rechte hat, um eine Datei anlegen zu können.
PS C:\UsersMarkus> Get-EventLog System -Newest 2000 | Where-Object {$_.EntryType -match "Error"} | Format-List | Out-File c:Errorlog.txt
Fazit
Das Auslesen der Ereignisse auf einem Windows Client wie Windows 10 oder einem Server System wie z.B Server 2012R2 ist eine absolute Notwendigkeit für jeden IT-Systemadministrator. Die Zukunft der Konsole liegt wohl in der Windows Powershell, sodass man sich damit auf jedem Fall mal beschäftigen sollte. Viele Information zu dieser Thematik habe ich aus diesem Buch zur: Windows PowerShell *.
Das könnte dich auch interessieren:
- Kurzeinführung Windows PowerShell – Was sind Objekte – Cmdlets – Schleifen.
- So kann man viele Wiederholungen in der PowerShell mit einer for Schleife lösen
- Was ist eine IF-Anweisung in der Windows PowerShell und wie wendet man diese an!
- Mit der Windows PowerShell die Differenz zwischen zwei Datumsangaben berechnen
- Wie berechnet man den freien Speicherplatz mit der PowerShell?
- Informationen per PowerShell eines Remote Computers abfragen!
Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf gelangt ihr direkt zum Anbieter. Solltet ihr euch dort für einen Kauf entscheiden, erhält IT-Learner eine kleine Provision. Der Preis ändert sich für euch nicht. Danke für eure Unterstützung! Letzte Aktualisierung am 9.11.2023
Steigere dein Wissen
Kostenlose Befehlsreferenzen und E-Books herunterladen