Delen via


Get-EventLog

Hiermee haalt u de gebeurtenissen op in een gebeurtenislogboek of een lijst met de gebeurtenislogboeken op de lokale computer of externe computers.

Syntaxis

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

De Get-EventLog cmdlet haalt gebeurtenissen en gebeurtenislogboeken op van lokale en externe computers. Get-EventLog Haalt standaard logboeken op van de lokale computer. Gebruik de parameter ComputerName om logboeken van externe computers op te halen.

U kunt de Get-EventLog parameters en eigenschapswaarden gebruiken om te zoeken naar gebeurtenissen. De cmdlet haalt gebeurtenissen op die overeenkomen met de opgegeven eigenschapswaarden.

PowerShell-cmdlets die het EventLog zelfstandig naamwoord bevatten, werken alleen in klassieke Windows-gebeurtenislogboeken, zoals Toepassing, Systeem of Beveiliging. Als u logboeken wilt ophalen die gebruikmaken van de Windows-gebeurtenislogboektechnologie in Windows Vista en latere Windows-versies, gebruikt u Get-WinEvent.

Notitie

Get-EventLog maakt gebruik van een Win32-API die is afgeschaft. De resultaten zijn mogelijk niet nauwkeurig. Gebruik in plaats daarvan de Get-WinEvent cmdlet.

Voorbeelden

Voorbeeld 1: Gebeurtenislogboeken ophalen op de lokale computer

In dit voorbeeld wordt de lijst met gebeurtenislogboeken weergegeven die beschikbaar zijn op de lokale computer. De namen in de kolom Logboek worden gebruikt met de parameter LogName om op te geven welk logboek wordt gezocht naar gebeurtenissen.

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

De Get-EventLog cmdlet gebruikt de parameter List om de beschikbare logboeken weer te geven.

Voorbeeld 2: Recente vermeldingen ophalen uit een gebeurtenislogboek op de lokale computer

In dit voorbeeld worden recente vermeldingen opgehaald uit het gebeurtenislogboek van het systeem.

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...

De Get-EventLog cmdlet gebruikt de parameter LogName om het gebeurtenislogboek van het systeem op te geven. De parameter Nieuwste retourneert de vijf meest recente gebeurtenissen.

Voorbeeld 3: Alle bronnen zoeken voor een specifiek aantal vermeldingen in een gebeurtenislogboek

In dit voorbeeld ziet u hoe u alle bronnen kunt vinden die zijn opgenomen in de 1000 meest recente vermeldingen in het gebeurtenislogboek van het systeem.

$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

De Get-EventLog cmdlet gebruikt de parameter LogName om het systeemlogboek op te geven. Met de parameter Nieuwste selecteert u de 1000 meest recente gebeurtenissen. De gebeurtenisobjecten worden opgeslagen in de $Events variabele. De $Events objecten worden via de pijplijn naar de Group-Object cmdlet verzonden. Group-Object gebruikt de parameter Eigenschap om de objecten te groeperen op bron en telt het aantal objecten voor elke bron. Met de parameter NoElement worden de groepsleden uit de uitvoer verwijderd. De Sort-Object cmdlet gebruikt de parameter Eigenschap om te sorteren op het aantal bronnamen. De parameter Aflopend sorteert de lijst op volgorde op aantal van hoog naar laag.

Voorbeeld 4: Fout gebeurtenissen ophalen uit een specifiek gebeurtenislogboek

In dit voorbeeld worden fout gebeurtenissen uit het gebeurtenislogboek van het systeem opgehaald.

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...

De Get-EventLog cmdlet gebruikt de parameter LogName om het systeemlogboek op te geven. Met de parameter EntryType worden de gebeurtenissen gefilterd om alleen Fout-gebeurtenissen weer te geven.

Voorbeeld 5: Gebeurtenissen ophalen uit een gebeurtenislogboek met een InstanceId en Bronwaarde

In dit voorbeeld worden gebeurtenissen opgehaald uit het systeemlogboek voor een specifieke InstanceId en Bron.

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...

De Get-EventLog cmdlet gebruikt de parameter LogName om het systeemlogboek op te geven. De parameter InstanceID selecteert de gebeurtenissen met de opgegeven exemplaar-id. De bronparameter geeft de gebeurteniseigenschap op.

Voorbeeld 6: Gebeurtenissen ophalen van meerdere computers

Met deze opdracht worden de gebeurtenissen opgehaald uit het gebeurtenislogboek van het systeem op drie computers: Server01, Server02 en Server03.

Get-EventLog -LogName System -ComputerName Server01, Server02, Server03

De Get-EventLog cmdlet gebruikt de parameter LogName om het systeemlogboek op te geven. De parameter ComputerName maakt gebruik van een door komma's gescheiden tekenreeks om de computers weer te geven waaruit u de gebeurtenislogboeken wilt ophalen.

Voorbeeld 7: Alle gebeurtenissen ophalen die een specifiek woord in het bericht bevatten

Met deze opdracht worden alle gebeurtenissen in het gebeurtenislogboek van het systeem opgeslagen die een specifiek woord in het bericht van de gebeurtenis bevatten. Het is mogelijk dat de waarde van de opgegeven berichtparameter is opgenomen in de inhoud van het bericht, maar niet wordt weergegeven in de PowerShell-console.

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'...

De Get-EventLog cmdlet gebruikt de parameter LogName om het gebeurtenislogboek van het systeem op te geven. De parameter Message geeft een woord op dat moet worden gezocht in het berichtveld van elke gebeurtenis.

Voorbeeld 8: De eigenschapswaarden van een gebeurtenis weergeven

In dit voorbeeld ziet u hoe u alle eigenschappen en waarden van een gebeurtenis kunt weergeven.

$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          :

De Get-EventLog cmdlet gebruikt de parameter LogName om het gebeurtenislogboek van het systeem op te geven. Met de parameter Nieuwste selecteert u het meest recente gebeurtenisobject. Het object wordt opgeslagen in de $A variabele. Het object in de $A variabele wordt via de pijplijn naar de Select-Object cmdlet verzonden. Select-Object gebruikt de parameter Eigenschap met een sterretje (*) om alle eigenschappen van het object te selecteren.

Voorbeeld 9: Gebeurtenissen ophalen uit een gebeurtenislogboek met behulp van een bron- en gebeurtenis-id

In dit voorbeeld worden gebeurtenissen voor een opgegeven bron- en gebeurtenis-id ophaalt.

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.

De Get-EventLog cmdlet gebruikt de parameter LogName om het gebeurtenislogboek van de toepassing op te geven. De bronparameter geeft de naam van de toepassing op, Outlook. De objecten worden via de pijplijn naar de Where-Object cmdlet verzonden. Voor elk object in de pijplijn gebruikt de Where-Object cmdlet de variabele $_.EventID om de eigenschap Gebeurtenis-id te vergelijken met de opgegeven waarde. De objecten worden via de pijplijn naar de Select-Object cmdlet verzonden. Select-Object gebruikt de parameter Eigenschap om de eigenschappen te selecteren die moeten worden weergegeven in de PowerShell-console.

Voorbeeld 10: Gebeurtenissen ophalen en groeperen op een eigenschap

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

De Get-EventLog cmdlet gebruikt de parameter LogName om het systeemlogboek op te geven. De parameter UserName bevat het jokerteken sterretje (*) om een deel van de gebruikersnaam op te geven. De gebeurtenisobjecten worden via de pijplijn naar de Group-Object cmdlet verzonden. Group-Object gebruikt de parameter Eigenschap om op te geven dat de eigenschap UserName wordt gebruikt om de objecten te groeperen en het aantal objecten voor elke gebruikersnaam te tellen. Met de parameter NoElement worden de groepsleden uit de uitvoer verwijderd. De objecten worden via de pijplijn naar de Select-Object cmdlet verzonden. Select-Object gebruikt de parameter Eigenschap om de eigenschappen te selecteren die moeten worden weergegeven in de PowerShell-console.

Voorbeeld 11: Gebeurtenissen ophalen die zijn opgetreden tijdens een specifiek datum- en tijdsbereik

In dit voorbeeld worden fout gebeurtenissen uit het gebeurtenislogboek van het systeem opgehaald voor een opgegeven datum en tijdsbereik. De parameters Voor en Na stellen het datum- en tijdsbereik in, maar worden uitgesloten van de uitvoer.

$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...

De Get-Date cmdlet gebruikt de parameter Date om een datum en tijd op te geven. De DateTime-objecten worden opgeslagen in de $Begin en $End variabelen. De Get-EventLog cmdlet gebruikt de parameter LogName om het systeemlogboek op te geven. De parameter EntryType geeft het gebeurtenistype Fout op. Het datum- en tijdbereik wordt ingesteld door de parameter After en $Begin variabele en de parameter Before en $End de variabele.

Parameters

-After

Hiermee worden gebeurtenissen opgehaald die zijn opgetreden na een opgegeven datum en tijd. De datum en tijd na de parameter worden uitgesloten van de uitvoer. Voer een DateTime-object in, zoals de waarde die wordt geretourneerd door de Get-Date cmdlet.

Type:DateTime
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AsBaseObject

Geeft aan dat deze cmdlet een standaard System.Diagnostics.EventLogEntry-object retourneert voor elke gebeurtenis. Zonder deze parameter Get-EventLog wordt een uitgebreid PSObject-object geretourneerd met extra EventLogName-, Bron- en InstanceId-eigenschappen .

Als u het effect van deze parameter wilt zien, sluist u de gebeurtenissen door naar de Get-Member cmdlet en bekijkt u de TypeName-waarde in het resultaat.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-AsString

Geeft aan dat deze cmdlet de uitvoer retourneert als tekenreeksen, in plaats van objecten.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Before

Hiermee worden gebeurtenissen opgehaald die zijn opgetreden vóór een opgegeven datum en tijd. De datum en tijd van de parameter Vóór worden uitgesloten van de uitvoer. Voer een DateTime-object in, zoals de waarde die wordt geretourneerd door de Get-Date cmdlet.

Type:DateTime
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-ComputerName

Met deze parameter geeft u het NetBIOS-naam, IP-adres (Internet Protocol) van een externe computer of een FQDN (Fully Qualified Domain Name) op.

Als de parameter ComputerName niet is opgegeven, Get-EventLog wordt standaard ingesteld op de lokale computer. De parameter accepteert ook een punt (.) om de lokale computer op te geven.

De parameter ComputerName is niet afhankelijk van externe communicatie van Windows PowerShell. U kunt deze gebruiken Get-EventLog met de parameter ComputerName , zelfs als uw computer niet is geconfigureerd voor het uitvoeren van externe opdrachten.

Type:String[]
Aliassen:Cn
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-EntryType

Hiermee geeft u, als tekenreeksmatrix, het invoertype op van de gebeurtenissen die deze cmdlet ophaalt.

De aanvaardbare waarden voor deze parameter zijn:

  • Error
  • Gegevens
  • FailureAudit
  • SuccessAudit
  • Waarschuwing
Type:String[]
Aliassen:ET
Geaccepteerde waarden:Error, Information, FailureAudit, SuccessAudit, Warning
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Index

Hiermee geeft u de indexwaarden op die moeten worden opgehaald uit het gebeurtenislogboek. De parameter accepteert een door komma's gescheiden tekenreeks met waarden.

Type:Int32[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-InstanceId

Hiermee geeft u de exemplaar-id's op die moeten worden opgehaald uit het gebeurtenislogboek. De parameter accepteert een door komma's gescheiden tekenreeks met waarden.

Type:Int64[]
Position:1
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-List

Geeft de lijst weer met gebeurtenislogboeken op de computer.

Type:SwitchParameter
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-LogName

Hiermee geeft u de naam van één gebeurtenislogboek. Gebruik de logboeknamen om de logboeknamen Get-EventLog -Listte vinden. Jokertekens zijn toegestaan. Deze parameter is vereist.

Type:String
Aliassen:LN
Position:0
Default value:None
Vereist:True
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-Message

Hiermee geeft u een tekenreeks in het gebeurtenisbericht. U kunt deze parameter gebruiken om te zoeken naar berichten die bepaalde woorden of woordgroepen bevatten. Jokertekens zijn toegestaan.

Type:String
Aliassen:MSG
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-Newest

Begint met de nieuwste gebeurtenissen en haalt het opgegeven aantal gebeurtenissen op. Het aantal gebeurtenissen is bijvoorbeeld -Newest 100vereist. Hiermee geeft u het maximum aantal gebeurtenissen op dat wordt geretourneerd.

Type:Int32
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-Source

Hiermee geeft u, als tekenreeksmatrix, bronnen op die zijn geschreven naar het logboek dat deze cmdlet ophaalt. Jokertekens zijn toegestaan.

Type:String[]
Aliassen:ABO
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

-UserName

Hiermee geeft u, als een tekenreeksmatrix, gebruikersnamen op die zijn gekoppeld aan gebeurtenissen. Voer namen of naampatronen in, zoals User01, User*of Domain01\User*. Jokertekens zijn toegestaan.

Type:String[]
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:True

Invoerwaarden

None

U kunt invoer niet doorsluisen naar Get-EventLog.

Uitvoerwaarden

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

Als de Parameter LogName is opgegeven, is de uitvoer een verzameling System.Diagnostics.EventLogEntry-objecten .

Als alleen de parameter List is opgegeven, is de uitvoer een verzameling System.Diagnostics.EventLog-objecten .

Als zowel de parameters Lijst als AsString zijn opgegeven, is de uitvoer een verzameling System.String-objecten .

Notities

De cmdlets Get-EventLog en Get-WinEvent worden niet ondersteund in de Windows Preinstallation Environment (Windows PE).