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-Objectanvä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-Objectanvä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-Objectanvä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-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-Objectanvä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).