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 hämtar Get-EventLog 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 Get-EventLog parametrar och egenskapsvärden för att söka efter händelser. Cmdleten hämtar händelser som matchar de angivna egenskapsvärdena.

PowerShell-cmdletar som innehåller EventLog substantiv fungerar 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 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 Senaste 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 parametern LogName för att ange systemloggen. Parametern Senaste väljer de 1 000 senaste händelserna. Händelseobjekten lagras i variabeln $Events. De $Events objekten 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 property 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 parametern LogName 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 parametern LogName 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 parametern LogName 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 den angivna message parameterns 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 Message 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 Senaste 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 parametern Property med en asterisk (*) för att markera alla objektegenskaper.

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 använder cmdleten Where-Object 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 parametern Property 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 parametern LogName 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 parametern Egenskap 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 Property 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 tidsintervall 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. Objekten DateTime lagras i variablerna $Begin och $End. Cmdleten Get-EventLog använder parametern LogName för att ange systemloggen. Parametern EntryType anger händelsetypen Fel. Datum- och tidsintervallet anges av parametern Efter och $Begin och parametern Före och $End variabel.

Parametrar

-After

Hämtar händelser som inträffat efter ett angivet datum och en angiven tid. Efter parameterdatum och -tid 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 returnerar Get-EventLog ett utökat PSObject--objekt med ytterligare egenskaper EventLogName, Sourceoch InstanceId.

Om du vill se effekten av den här parametern dirigerar du händelserna till cmdleten Get-Member och undersöker värdet TypeName 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. Före parameterdatum och -tid 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 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 godtagbara 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:int[]
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:long[]
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:Int
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 parametern LogName anges är utdata en samling System.Diagnostics.EventLogEntry objekt.

Om endast parametern List 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).