Ruft die Ereignisse in einem Ereignisprotokoll oder eine Liste der Ereignisprotokolle auf dem lokalen oder Remotecomputern ab.
Syntax
Get-EventLog [-AsString] [-ComputerName <string[]>] [-List] [<CommonParameters>] Get-EventLog [-LogName] <string> [[-InstanceId] <Int64[]>] [-After <DateTime>] [-AsBaseObject] [-Before <DateTime>] [-ComputerName <string[]>] [-EntryType <string[]>] [-Index <Int32[]>] [-Message <string>] [-Newest <int>] [-Source <string[]>] [-UserName <string[]>] [<CommonParameters>]
Beschreibung
Das Cmdlet "Get-EventLog" ruft Ereignisse und Ereignisprotokolle auf den lokalen und Remotecomputern ab.
Mit den Parametern von Get-EventLog können Sie Ereignisse anhand ihrer Eigenschaftenwerte suchen. Get-EventLog ruft nur die Ereignisse ab, bei denen alle angegebenen Eigenschaftenwerte übereinstimmen.
Die Cmdlets, die das Substantiv "EventLog" enthalten (die EventLog-Cmdlets) können nur für klassische Ereignisprotokolle verwendet werden. Verwenden Sie Get-WinEvent, um Ereignisse aus Protokollen abzurufen, die die Windows-Ereignisprotokolltechnologie in Windows Vista und höheren Versionen von Windows verwenden.
Parameter
-After <DateTime>
Ruft nur die Ereignisse ab, die nach dem angegebenen Datum und der angegebenen Uhrzeit eintreten. Geben Sie ein DateTime-Objekt ein, z. B. das vom Cmdlet "Get-Date" zurückgegebene Objekt.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-AsBaseObject
Gibt ein System.Diagnostics.EventLogEntry-Standardobjekt für jedes Ereignis zurück. Ohne diesen Parameter gibt Get-EventLog ein erweitertes PSObject-Objekt mit den zusätzlichen Eigenschaften EventLogName, Source und InstanceId zurück.
Übergeben Sie die Ereignisse über die Pipeline an das Cmdlet "Get-Member", und betrachten Sie den TypeName-Wert im Ergebnis, um die Auswirkungen dieses Parameters zu veranschaulichen.
Erforderlich? |
false |
Position? |
named |
Standardwert |
False |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-AsString
Gibt die Ausgabe als Zeichenfolgen und nicht als Objekte zurück.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Before <DateTime>
Ruft nur die Ereignisse ab, die vor dem angegebenen Datum und der angegebenen Uhrzeit eintreten. Geben Sie ein DateTime-Objekt ein, z. B. das vom Cmdlet "Get-Date" zurückgegebene Objekt.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-ComputerName <string[]>
Gibt einen Remotecomputer an. Der Standardwert ist der lokale Computer.
Geben Sie den NetBIOS-Namen, eine IP-Adresse oder den vollqualifizierten Domänennamen eines Remotecomputers ein. Um den lokalen Computer anzugeben, geben Sie den Computernamen, einen Punkt (.) oder "localhost" ein.
Dieser Parameter beruht nicht auf Windows PowerShell-Remoting. Sie können den ComputerName-Parameter von Get-EventLog auch dann verwenden, wenn der Computer nicht für das Ausführen von Remotebefehlen konfiguriert ist.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-EntryType <string[]>
Ruft nur Ereignisse mit dem angegebenen Eintragstyp ab. Gültige Werte sind "Error", "Information", "FailureAudit", "SuccessAudit" und "Warning". Standardmäßig werden alle Ereignisse betrachtet.
Erforderlich? |
false |
Position? |
named |
Standardwert |
All events |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Index <Int32[]>
Ruft nur Ereignisse mit den angegebenen Indexwerten ab.
Erforderlich? |
false |
Position? |
named |
Standardwert |
All events |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-InstanceId <Int64[]>
Ruft nur Ereignisse mit den angegebenen Instanz-IDs ab.
Erforderlich? |
false |
Position? |
2 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-List
Ruft eine Liste der Ereignisprotokolle auf dem Computer ab.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-LogName <string>
Gibt das Ereignisprotokoll an. Geben Sie den Protokollnamen (den Wert der Log-Eigenschaft, nicht den LogDisplayName) eines Ereignisprotokolls ein. Platzhalterzeichen sind nicht zulässig. Dieser Parameter ist erforderlich.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Message <string>
Ruft Ereignisse ab, deren Meldungen die angegebene Zeichenfolge enthalten. Mit dieser Eigenschaft können Sie Meldungen suchen, die bestimmte Wörter oder Ausdrücke enthalten. Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
true |
-Newest <int>
Gibt die maximale Anzahl von abgerufenen Ereignissen an. Get-EventLog ruft die angegebene Anzahl von Ereignissen ab, beginnend mit dem neuesten Ereignis im Protokoll.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-Source <string[]>
Ruft Ereignisse ab, die von den angegebenen Quellen ins Protokoll geschrieben wurden. Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
true |
-UserName <string[]>
Ruft nur die Ereignisse ab, die den angegebenen Benutzernamen zugeordnet sind. Geben Sie Namen oder Namensmuster ein, z. B. "User01", "User*" oder "Domain01\User*". Platzhalter sind zulässig.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
true |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
Keine. Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden. |
Ausgaben |
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String Wenn der LogName-Parameter angegeben wird, stellt die Ausgabe eine Auflistung von EventLogEntry-Objekten dar (System.Diagnostics.EventLogEntry). Wenn nur der List-Parameter angegeben wird, stellt die Ausgabe eine Auflistung von EventLog-Objekten dar (System.Diagnostics.EventLog). Wenn sowohl der List-Parameter als auch der AsString-Parameter angegeben werden, stellt die Ausgabe eine Auflistung von Zeichenfolgen dar (System.String). |
Beispiel 1
C:\PS>get-eventlog -list Beschreibung ----------- Mit diesem Befehl werden Informationen über die Ereignisprotokolle auf dem Computer angezeigt.
Beispiel 2
C:\PS>get-eventlog -newest 5 -logname application Beschreibung ----------- Mit diesem Befehl werden die letzten fünf Einträge im Anwendungsereignisprotokoll angezeigt.
Beispiel 3
C:\PS>$events = get-eventlog -logname system -newest 1000 C:\PS> $events | group-object -property source -noelement | sort-object -property count -descending Count Name ----- ---- 75 Service Control Manager 12 Print 6 UmrdpService 2 DnsApi 2 DCOM 1 Dhcp 1 TermDD 1 volsnap Beschreibung ----------- In diesem Beispiel wird gezeigt, wie Sie alle Quellen suchen können, die in den 1000 letzten Einträgen im Systemereignisprotokoll dargestellt werden. Mit dem ersten Befehl werden die letzten 1000 Einträge aus dem Systemereignisprotokoll abgerufen und in der Variablen "$events" gespeichert. Der zweite Befehl sendet die Ereignisse in "$events" mithilfe eines Pipelineoperators (|) an das Cmdlet "Group-Object", das die Einträge nach dem Wert der Source-Eigenschaft gruppiert. Der Befehl verwendet einen zweiten Pipelineoperator, um die gruppierten Ereignisse an das Cmdlet "Sort-Object" zu senden, das sie in absteigender Reihenfolge sortiert, sodass die am häufigsten vorkommende Quelle zuerst aufgeführt wird. "Source" ist nur eine Eigenschaft von Ereignisprotokolleinträgen. Wenn Sie alle Eigenschaften eines Ereignisprotokolleintrags anzeigen möchten, übergeben Sie die Ereignisse über die Pipeline an das Cmdlet "Get-Member".
Beispiel 4
C:\PS>get-eventlog -logname System -EntryType Error Beschreibung ----------- Dieser Befehl ruft nur Fehlerereignisse aus dem Systemereignisprotokoll ab.
Beispiel 5
C:\PS>get-eventlog -logname System -instanceID 3221235481 -Source "DCOM" Beschreibung ----------- Dieser Befehl ruft aus dem Systemprotokoll Ereignisse mit der InstanceID 3221235481 und dem Source-Wert "DCOM" ab.
Beispiel 6
C:\PS>get-eventlog -logname "Windows PowerShell" -computername localhost, Server01, Server02 Beschreibung ----------- Dieser Befehl ruft die Ereignisse aus dem Windows PowerShell-Ereignisprotokoll auf drei Computern ab: "Server01", "Server02" und dem lokalen Computer "localhost".
Beispiel 7
C:\PS>get-eventlog -logname "Windows PowerShell" -message "*failed*" Beschreibung ----------- Dieser Befehl ruft alle Ereignisse aus dem Windows PowerShell-Ereignisprotokoll ab, deren Meldungswert das Wort "failed" enthält.
Beispiel 8
C:\PS>$a = get-eventlog -log System -newest 1 C:\PS> $a | format-list -property * EventID : 7036 MachineName : Server01 Data : {} Index : 10238 Category : (0) CategoryNumber : 0 EntryType : Information Message : The description for Event ID Source : Service Control Manager ReplacementStrings : {WinHTTP Web Proxy Auto-Disco InstanceId : 1073748860 TimeGenerated : 4/11/2008 9:56:05 PM TimeWritten : 4/11/2008 9:56:05 PM UserName : Site : Container : Beschreibung ----------- In diesem Beispiel wird das Anzeigen aller Eigenschaftenwerte eines Ereignisses veranschaulicht. Mit dem ersten Befehl wird das neueste Ereignis aus dem Systemereignisprotokoll abgerufen in der Variablen "$a" gespeichert. Beim zweiten Befehl wird das Ereignis in "$a" mit einem Pipelineoperator (|) an den Befehl "Format-List" gesendet, der alle (*) der Ereigniseigenschaften anzeigt.
Beispiel 9
C:\PS>get-eventlog -log application -source outlook | where {$_.eventID -eq 34} Beschreibung ----------- Dieser Befehl ruft Ereignisse im Anwendungsereignisprotokoll ab, bei denen die Quelle Outlook und die Ereignis-ID 34 ist. Obwohl Get-EventLog nicht über einen EventID-Parameter verfügt, können Sie mit dem Cmdlet "Where-Object" Ereignisse auf Grundlage des Werts einer beliebigen Ereigniseigenschaft auswählen.
Beispiel 10
C:\PS>get-eventlog -log system -username NT* | group-object -property username -noelement | format-table Count, Name -auto Count Name ----- ---- 6031 NT AUTHORITY\SYSTEM 42 NT AUTHORITY\LOCAL SERVICE 4 NT AUTHORITY\NETWORK SERVICE Beschreibung ----------- Dieser Befehl gibt die Ereignisse im Systemprotokoll gruppiert nach dem Wert der UserName-Eigenschaft zurück. Der Befehl "Get-EventLog" ruft mit dem UserName-Parameter nur Ereignisse ab, in denen der Benutzername mit "NT*" beginnt".
Beispiel 11
C:\PS>$May31 = get-date 5/31/08 C:\PS> $July1 = get-date 7/01/08 C:\PS> get-eventlog -log "Windows PowerShell" -entrytype Error -after $may31 -before $july1 Beschreibung ----------- Dieser Befehl ruft alle Fehler im Windows PowerShell-Ereignisprotokoll ab, die im Juni 2008 aufgetreten sind.
Siehe auch