Dela via


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>
   [[-InstanceId] <long[]>]
   [-ComputerName <string[]>]
   [-Newest <int>]
   [-After <datetime>]
   [-Before <datetime>]
   [-UserName <string[]>]
   [-Index <int[]>]
   [-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 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.

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 Logg används med logname-parametern 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 LogName-parametern 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 parametern Egenskap 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 för varje 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 Källa 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 visa 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 värdet för den angivna meddelandeparametern 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 LogName-parametern 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ärden för en händelse

Det här exemplet visar hur du visar alla en händelses egenskaper och värden.

$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 LogName-parametern 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-Objectanvänder egenskapsparametern med en asterisk (*) för att markera alla objektets egenskaper.

Exempel 9: Hämta händelser från en händelselogg med 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 LogName-parametern 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 händelse-ID-egenskapen med det angivna värdet. Objekten skickas ned i pipelinen till cmdleten Select-Object . Select-Object använder parametern Egenskap 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-Objectanvä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 parametern Egenskap 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 Date 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 Efter och $Begin variabeln samt parametern Före 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 .

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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, Källa 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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-AsString

Anger att den här cmdleten returnerar utdata som strängar i stället för objekt.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 det värde som returneras av cmdleten Get-Date .

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 den lokala datorn som standard. 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.

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Type:String[]
Aliases:ET
Accepted values:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Index

Anger de indexvärden som ska hämtas från händelseloggen. Parametern accepterar en kommaavgränsad sträng med värden.

Type:int[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

Anger instans-ID:t som ska hämtas från händelseloggen. Parametern accepterar en kommaavgränsad sträng med värden.

Type:long[]
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-List

Visar listan över händelseloggar på datorn.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:LN
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Aliases:MSG
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Int
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Source

Anger källor som skrivits till loggen som cmdleten hämtar som en strängmatris. Jokertecken tillåts.

Type:String[]
Aliases:ABO
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:True

Indata

None

Du kan inte skicka indata till Get-EventLog.

Utdata

System.Diagnostics.EventLogEntry. System.Diagnostics.EventLog. System.String

Om parametern LogName anges ä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).