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




Inhaltsverzeichnis