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 -List
te 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 100
vereist. 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).