Per Windows PowerShell eventlog auslesen » IT-LEARNER

Per Windows PowerShell eventlog auslesen

Grundlagen

Mit der Ereignisanzeige erhält man Zugriff auf die aufgezeichneten Ereignisinformationen. Neben den Windows Protokollen sind auch die Anwendungs- und Dienstprotokolle sichtbar. So kannst du auch per PowerShell eventlog auslesen!

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 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

Per Windows PowerShell eventlog auslesen
Ereignisanzeige – per PowerShell Eventlog auslesen

Vorgehensweise um per Windows PowerShell eventlog auslesen zu können

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.

PS C:\UsersMarkus> Get-Eventlog Cmdlet Get-EventLog an der Befehlspipelineposition 1 Geben Sie Werte für die folgenden Parameter an: LogName:

Zur Auswahl stehen hier natürlich sämtliche Protokolle wie System, Anwendung, Installation etc..

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 nichts 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

Nachdem man per Windows PowerShell eventlog auslesen gelassen hat, bietet es sich auch noch 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 noch einmal 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

Videoanleitung: Ereignisanzeige mit der PowerShell

Sie sehen gerade einen Platzhalterinhalt von Standard. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf den Button unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.

Weitere Informationen
Ereignisanzeige mit der Windows PowerShell

Fazit zum PowerShell Eventlog auslesen

Um per Windows PowerShell eventlog auslesen zu können, benötigt man im Prinzip nur das Cmdlet Get-eventlog.

Das Auslesen der Ereignisse auf einem Windows Client wie Windows 10,11 oder einem Server System wie Server 2025 ist eine absolute Notwendigkeit für jeden IT-Systemadministrator.

Die Zukunft der Konsole liegt wohl in der Windows Powershell, sodass man sich damit auf jeden Fall mal beschäftigen sollte. Viele Information zu dieser Thematik habe ich aus diesem Buch zur: Windows PowerShell.

Das könnte dich auch interessieren:

Dieser Artikel beinhaltet Partner-Links. Durch einen Klick darauf ge­lan­gt 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 18.05.2024

516b6b82233b419bbc1bbdd0c270bead
Der Blogbetreiber und Autor: Markus Elsberger

Über den Autor

Mein Name ist Markus Elsberger und ich beschäftige mich mit der Administration von Windows und Linux Systemen sowie mit diversen Themen bzgl. Netzwerktechnik. In meiner Lehrtätigkeit erstelle ich verschiedene Szenarien und teste auch verschiedene Konfigurationen, welche ich in diesem Blog festhalten möchte.


Kostenlose Befehlsreferenzen und E-Books
(Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.)


Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Ebook - 10 Schritte nach der Windows Installation

Kostenlose Befehlsreferenzen und

E-Books

FREE

Netzwerkanalyse, Benutzerverwaltung, Festplattenkonfiguration, u. v. m.