Get-EventLog
Hämtar händelserna i en händelselogg, eller en lista över händelseloggarna, på den lokala datorn eller fjärrdatorerna.
Syntax
Get-EventLog
[-LogName] <String>
[-ComputerName <String[]>]
[-Newest <Int32>]
[-After <DateTime>]
[-Before <DateTime>]
[-UserName <String[]>]
[[-InstanceId] <Int64[]>]
[-Index <Int32[]>]
[-EntryType <String[]>]
[-Source <String[]>]
[-Message <String>]
[-AsBaseObject]
[<CommonParameters>]
Get-EventLog
[-ComputerName <String[]>]
[-List]
[-AsString]
[<CommonParameters>]
Description
Cmdleten Get-EventLog
hämtar händelser och händelseloggar från lokala datorer och fjärrdatorer. Som standard Get-EventLog
hämtar loggar från den lokala datorn. Om du vill hämta loggar från fjärrdatorer använder du parametern ComputerName .
Du kan använda parametrarna och egenskapsvärdena Get-EventLog
för att söka efter händelser. Cmdleten hämtar händelser som matchar de angivna egenskapsvärdena.
PowerShell-cmdletar som endast innehåller substantiv fungerar EventLog
endast i klassiska Windows-händelseloggar som Program, System eller Säkerhet. Om du vill hämta loggar som använder Windows-händelseloggtekniken i Windows Vista och senare Windows-versioner använder du Get-WinEvent
.
Kommentar
Get-EventLog
använder ett Win32-API som är inaktuellt. Resultaten kanske inte är korrekta. Använd cmdleten Get-WinEvent
i stället.
Exempel
Exempel 1: Hämta händelseloggar på den lokala datorn
I det här exemplet visas en lista över händelseloggar som är tillgängliga på den lokala datorn. Namnen i kolumnen Log används med parametern LogName för att ange vilken logg som söks efter händelser.
Get-EventLog -List
Max(K) Retain OverflowAction Entries Log
------ ------ -------------- ------- ---
15,168 0 OverwriteAsNeeded 20,792 Application
15,168 0 OverwriteAsNeeded 12,559 System
15,360 0 OverwriteAsNeeded 11,173 Windows PowerShell
Cmdleten Get-EventLog
använder parametern List för att visa tillgängliga loggar.
Exempel 2: Hämta de senaste posterna från en händelselogg på den lokala datorn
Det här exemplet hämtar de senaste posterna från systemhändelseloggen.
Get-EventLog -LogName System -Newest 5
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13820 Jan 17 19:16 Error DCOM 10016 The description for Event...
13819 Jan 17 19:08 Error DCOM 10016 The description for Event...
13818 Jan 17 19:06 Information Service Control... 1073748864 The start type of the Back...
13817 Jan 17 19:05 Error DCOM 10016 The description for Event...
13815 Jan 17 19:03 Information Microsoft-Windows... 35 The time service is now sync...
Cmdleten Get-EventLog
använder parametern LogName för att ange systemhändelseloggen. Parametern Newest returnerar de fem senaste händelserna.
Exempel 3: Hitta alla källor för ett visst antal poster i en händelselogg
Det här exemplet visar hur du hittar alla källor som ingår i de 1 000 senaste posterna i systemhändelseloggen.
$Events = Get-EventLog -LogName System -Newest 1000
$Events | Group-Object -Property Source -NoElement | Sort-Object -Property Count -Descending
Count Name
----- ----
110 DCOM
65 Service Control Manager
51 Microsoft-Windows-Kern...
14 EventLog
14 BTHUSB
13 Win32k
Cmdleten Get-EventLog
använder LogName-parametern för att ange systemloggen. Parametern Newest väljer de 1 000 senaste händelserna. Händelseobjekten lagras i variabeln $Events
. Objekten $Events
skickas ned i pipelinen till cmdleten Group-Object
.
Group-Object
använder egenskapsparametern för att gruppera objekten efter källa och räknar antalet objekt för varje källa. Parametern NoElement tar bort gruppmedlemmarna från utdata.
Cmdleten Sort-Object
använder parametern Egenskap för att sortera efter antalet källnamn.
Parametern Fallande sorterar listan i ordning efter antal från högsta till lägsta.
Exempel 4: Hämta felhändelser från en specifik händelselogg
Det här exemplet hämtar felhändelser från systemhändelseloggen.
Get-EventLog -LogName System -EntryType Error
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13296 Jan 16 13:53 Error DCOM 10016 The description for Event ID '10016' in Source...
13291 Jan 16 13:51 Error DCOM 10016 The description for Event ID '10016' in Source...
13245 Jan 16 11:45 Error DCOM 10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07 Error DCOM 10016 The description for Event ID '10016' in Source...
Cmdleten Get-EventLog
använder LogName-parametern för att ange systemloggen. Parametern EntryType filtrerar händelserna så att endast felhändelser visas.
Exempel 5: Hämta händelser från en händelselogg med ett InstanceId- och källvärde
Det här exemplet hämtar händelser från systemloggen för ett specifikt InstanceId och källa.
Get-EventLog -LogName System -InstanceId 10016 -Source DCOM
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13245 Jan 16 11:45 Error DCOM 10016 The description for Event ID '10016' in Source...
13230 Jan 16 11:07 Error DCOM 10016 The description for Event ID '10016' in Source...
13219 Jan 16 10:00 Error DCOM 10016 The description for Event ID '10016' in Source...
Cmdleten Get-EventLog
använder LogName-parametern för att ange systemloggen. Parametern InstanceID väljer händelserna med angivet instans-ID. Parametern Source anger händelseegenskapen.
Exempel 6: Hämta händelser från flera datorer
Det här kommandot hämtar händelserna från systemhändelseloggen på tre datorer: Server01, Server02 och Server03.
Get-EventLog -LogName System -ComputerName Server01, Server02, Server03
Cmdleten Get-EventLog
använder LogName-parametern för att ange systemloggen. Parametern ComputerName använder en kommaavgränsad sträng för att lista de datorer som du vill hämta händelseloggarna från.
Exempel 7: Hämta alla händelser som innehåller ett specifikt ord i meddelandet
Det här kommandot hämtar alla händelser i systemhändelseloggen som innehåller ett specifikt ord i händelsens meddelande. Det är möjligt att den angivna meddelandeparameterns värde ingår i meddelandets innehåll men inte visas i PowerShell-konsolen.
Get-EventLog -LogName System -Message *description*
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13821 Jan 17 19:17 Error DCOM 10016 The description for Event ID '10016'...
13820 Jan 17 19:16 Error DCOM 10016 The description for Event ID '10016'...
13819 Jan 17 19:08 Error DCOM 10016 The description for Event ID '10016'...
Cmdleten Get-EventLog
använder parametern LogName för att ange systemhändelseloggen. Parametern Meddelande anger ett ord att söka efter i meddelandefältet för varje händelse.
Exempel 8: Visa egenskapsvärdena för en händelse
Det här exemplet visar hur du visar alla egenskaper och värden för en händelse.
$A = Get-EventLog -LogName System -Newest 1
$A | Select-Object -Property *
EventID : 10016
MachineName : localhost
Data : {}
Index : 13821
Category : (0)
CategoryNumber : 0
EntryType : Error
Message : The description for Event ID '10016' in Source 'DCOM'...
Source : DCOM
ReplacementStrings : {Local,...}
InstanceId : 10016
TimeGenerated : 1/17/2019 19:17:23
TimeWritten : 1/17/2019 19:17:23
UserName : username
Site :
Container :
Cmdleten Get-EventLog
använder parametern LogName för att ange systemhändelseloggen. Parametern Newest väljer det senaste händelseobjektet. Objektet lagras i variabeln $A
. Objektet i variabeln $A
skickas ned i pipelinen till cmdleten Select-Object
.
Select-Object
använder egenskapsparametern med en asterisk (*
) för att välja alla objektets egenskaper.
Exempel 9: Hämta händelser från en händelselogg med hjälp av ett käll- och händelse-ID
Det här exemplet hämtar händelser för ett angivet käll- och händelse-ID.
Get-EventLog -LogName Application -Source Outlook | Where-Object {$_.EventID -eq 63} |
Select-Object -Property Source, EventID, InstanceId, Message
Source EventID InstanceId Message
------ ------- ---------- -------
Outlook 63 1073741887 The Exchange web service request succeeded.
Outlook 63 1073741887 Outlook detected a change notification.
Outlook 63 1073741887 The Exchange web service request succeeded.
Cmdleten Get-EventLog
använder parametern LogName för att ange programhändelseloggen. Parametern Source anger programnamnet Outlook. Objekten skickas ned i pipelinen till cmdleten Where-Object
. För varje objekt i pipelinen Where-Object
använder cmdleten variabeln $_.EventID
för att jämföra egenskapen Händelse-ID med det angivna värdet. Objekten skickas ned i pipelinen till cmdleten Select-Object
. Select-Object
använder egenskapsparametern för att välja de egenskaper som ska visas i PowerShell-konsolen.
Exempel 10: Hämta händelser och gruppera efter en egenskap
Get-EventLog -LogName System -UserName NT* | Group-Object -Property UserName -NoElement |
Select-Object -Property Count, Name
Count Name
----- ----
6031 NT AUTHORITY\SYSTEM
42 NT AUTHORITY\LOCAL SERVICE
4 NT AUTHORITY\NETWORK SERVICE
Cmdleten Get-EventLog
använder LogName-parametern för att ange systemloggen. Parametern UserName innehåller jokertecknet asterisk (*
) för att ange en del av användarnamnet. Händelseobjekten skickas ned i pipelinen till cmdleten Group-Object
. Group-Object
använder egenskapsparametern för att ange att egenskapen UserName används för att gruppera objekten och räkna antalet objekt för varje användarnamn. Parametern NoElement tar bort gruppmedlemmarna från utdata. Objekten skickas ned i pipelinen till cmdleten Select-Object
.
Select-Object
använder egenskapsparametern för att välja de egenskaper som ska visas i PowerShell-konsolen.
Exempel 11: Hämta händelser som inträffat under ett visst datum- och tidsintervall
Det här exemplet hämtar felhändelser från systemhändelseloggen för ett angivet datum- och tidsintervall. Parametrarna Före och Efter anger datum- och tidsintervallet men undantas från utdata.
$Begin = Get-Date -Date '1/17/2019 08:00:00'
$End = Get-Date -Date '1/17/2019 17:00:00'
Get-EventLog -LogName System -EntryType Error -After $Begin -Before $End
Index Time EntryType Source InstanceID Message
----- ---- --------- ------ ---------- -------
13821 Jan 17 13:40 Error DCOM 10016 The description for Event ID...
13820 Jan 17 13:11 Error DCOM 10016 The description for Event ID...
...
12372 Jan 17 10:08 Error DCOM 10016 The description for Event ID...
12371 Jan 17 09:04 Error DCOM 10016 The description for Event ID...
Cmdleten Get-Date
använder parametern Datum för att ange ett datum och en tid. DateTime-objekten lagras i variablerna $Begin
och$End
. Cmdleten Get-EventLog
använder LogName-parametern för att ange systemloggen. Parametern EntryType anger händelsetypen Fel. Datum- och tidsintervallet anges av parametern After och $Begin
variabeln och parametern Before och $End
variabeln .
Parametrar
-After
Hämtar händelser som inträffat efter ett angivet datum och en angiven tid. Datum och tid för efterparametern undantas från utdata. Ange ett DateTime-objekt , till exempel värdet som returneras av cmdleten Get-Date
.
Typ: | DateTime |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-AsBaseObject
Anger att den här cmdleten returnerar standardobjektet System.Diagnostics.EventLogEntry för varje händelse. Utan den här parametern Get-EventLog
returnerar ett utökat PSObject-objekt med ytterligare egenskaper för EventLogName, Source och InstanceId .
Om du vill se effekten av den här parametern dirigerar du händelserna till cmdleten Get-Member
och undersöker TypeName-värdet i resultatet.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-AsString
Anger att den här cmdleten returnerar utdata som strängar i stället för objekt.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Before
Hämtar händelser som inträffat före ett angivet datum och en angiven tid. Datum och tid för parametern Före undantas från utdata. Ange ett DateTime-objekt , till exempel värdet som returneras av cmdleten Get-Date
.
Typ: | DateTime |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ComputerName
Den här parametern anger en fjärrdators NetBIOS-namn, IP-adress (Internet Protocol) eller ett fullständigt domännamn (FQDN).
Om parametern ComputerName inte har angetts används Get-EventLog
standardinställningen för den lokala datorn. Parametern accepterar också en punkt (.
) för att ange den lokala datorn.
Parametern ComputerName förlitar sig inte på Windows PowerShell-fjärrkommunikation. Du kan använda Get-EventLog
med parametern ComputerName även om datorn inte är konfigurerad för att köra fjärrkommandon.
Typ: | String[] |
Alias: | Cn |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-EntryType
Anger, som en strängmatris, posttypen för de händelser som denna cmdlet hämtar.
De acceptabla värdena för den här parametern är:
- Fel
- Information
- FailureAudit
- SuccessAudit
- Varning
Typ: | String[] |
Alias: | ET |
Godkända värden: | Error, Information, FailureAudit, SuccessAudit, Warning |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Index
Anger de indexvärden som ska hämtas från händelseloggen. Parametern accepterar en kommaavgränsad sträng med värden.
Typ: | Int32[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-InstanceId
Anger instans-ID:t som ska hämtas från händelseloggen. Parametern accepterar en kommaavgränsad sträng med värden.
Typ: | Int64[] |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-List
Visar listan över händelseloggar på datorn.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-LogName
Anger namnet på en händelselogg. Om du vill hitta loggnamnen använder du Get-EventLog -List
. Jokertecken tillåts. Den här parametern krävs.
Typ: | String |
Alias: | LN |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
-Message
Anger en sträng i händelsemeddelandet. Du kan använda den här parametern för att söka efter meddelanden som innehåller vissa ord eller fraser. Jokertecken tillåts.
Typ: | String |
Alias: | MSG |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
-Newest
Börjar med de senaste händelserna och hämtar det angivna antalet händelser. Antalet händelser krävs, till exempel -Newest 100
. Anger det maximala antalet händelser som returneras.
Typ: | Int32 |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Source
Anger källor som skrivits till loggen som cmdleten hämtar som en strängmatris. Jokertecken tillåts.
Typ: | String[] |
Alias: | ABO |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
-UserName
Anger användarnamn som är associerade med händelser som en strängmatris. Ange namn eller namnmönster, till exempel User01
, User*
eller Domain01\User*
. Jokertecken tillåts.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
Indata
None
Du kan inte skicka indata till Get-EventLog
.
Utdata
System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String
Om logname-parametern har angetts är utdata en samling System.Diagnostics.EventLogEntry-objekt.
Om endast listparametern anges är utdata en samling System.Diagnostics.EventLog-objekt .
Om både parametrarna List och AsString anges är utdata en samling System.String-objekt .
Kommentarer
Cmdletarna Get-EventLog
och Get-WinEvent
stöds inte i Windows Preinstallation Environment (Windows PE).