Get-WinEvent
Hämtar händelser från händelseloggar och loggfiler för händelsespårning på lokala datorer och fjärrdatorer.
Syntax
Get-WinEvent
[[-LogName] <String[]>]
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-ListLog] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[-Force]
[<CommonParameters>]
Get-WinEvent
[-ListProvider] <String[]>
[-ComputerName <String>]
[-Credential <PSCredential>]
[<CommonParameters>]
Get-WinEvent
[-ProviderName] <String[]>
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-Path] <String[]>
[-MaxEvents <Int64>]
[-Credential <PSCredential>]
[-FilterXPath <String>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterHashtable] <Hashtable[]>
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-MaxEvents <Int64>]
[-ComputerName <String>]
[-Credential <PSCredential>]
[-FilterXml] <XmlDocument>
[-Oldest]
[<CommonParameters>]
Description
Den här cmdleten är endast tillgänglig på Windows-plattformen.
Cmdleten Get-WinEvent
hämtar händelser från händelseloggar, inklusive klassiska loggar, till exempel system- och programloggarna . Cmdleten hämtar data från händelseloggar som genereras av Windows-händelseloggtekniken som introduceras i Windows Vista och händelser i loggfiler som genereras av händelsespårning för Windows (ETW). Som standard Get-WinEvent
returnerar händelseinformationen i den ordning som är den senaste till den äldsta.
Get-WinEvent
visar en lista över händelseloggar och händelseloggprovidrar. Tryck på CTRL+C om du vill avbryta kommandot. Du kan hämta händelser från valda loggar eller från loggar som genererats av valda händelseprovidrar. Och du kan kombinera händelser från flera källor i ett enda kommando.
Get-WinEvent
låter dig filtrera händelser med hjälp av XPath-frågor, strukturerade XML-frågor och hash-tabellfrågor.
Om du inte kör PowerShell som administratör kan du se felmeddelanden om att du inte kan hämta information om en logg.
Exempel
Exempel 1: Hämta alla loggar från en lokal dator
Det här kommandot hämtar alla händelseloggar på den lokala datorn. Loggar visas i den ordning som Get-WinEvent
hämtar dem. Klassiska loggar hämtas först, följt av de nya Windows-händelseloggarna.
Det är möjligt att en loggs RecordCount är null, vilket är tomt eller noll.
Get-WinEvent -ListLog *
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14500 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 3015 CxAudioSvcLog
Circular 20971520 ForwardedEvents
Circular 20971520 0 HardwareEvents
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern ListLog använder jokertecknet asterisk (*
) för att visa information om varje logg.
Exempel 2: Hämta den klassiska installationsloggen
Det här kommandot hämtar ett EventLogConfiguration-objekt som representerar den klassiska installationsloggen . Objektet innehåller information om loggen, till exempel filstorlek, provider, filsökväg och om loggen är aktiverad.
Get-WinEvent -ListLog Setup | Format-List -Property *
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Setup
LogType : Operational
LogIsolation : Application
IsEnabled : True
IsClassicLog : False
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Setup.evtx
MaximumSizeInBytes : 1052672
LogMode : Circular
OwningProviderName : Microsoft-Windows-Eventlog
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
Cmdleten använder parametern ListLog för att ange installationsloggen.Get-WinEvent
Objektet skickas ned i pipelinen till cmdleten Format-List
. Format-List
använder parametern Egenskap med jokertecknet asterisk (*
) för att visa varje egenskap.
Exempel 3: Konfigurera den klassiska säkerhetsloggen
Det här kommandot hämtar ett EventLogConfiguration-objekt som representerar den klassiska säkerhetsloggen . Objektet används sedan för att konfigurera inställningarna för loggen, till exempel maximal filstorlek, filsökväg och om loggen är aktiverad.
$log = Get-WinEvent -ListLog Security
$log.MaximumSizeInBytes = 1gb
try{
$log.SaveChanges()
Get-WinEvent -ListLog Security | Format-List -Property *
}catch [System.UnauthorizedAccessException]{
$ErrMsg = 'You do not have permission to configure this log!'
$ErrMsg += ' Try running this script with administrator privileges. '
$ErrMsg += $_.Exception.Message
Write-Error $ErrMsg
}
FileSize : 69632
IsLogFull : False
LastAccessTime : 3/13/2019 09:41:46
LastWriteTime : 3/13/2019 09:41:46
OldestRecordNumber : 1
RecordCount : 23
LogName : Security
LogType : Administrative
LogIsolation : Custom
IsEnabled : True
IsClassicLog : True
SecurityDescriptor : O:BAG:SYD: ...
LogFilePath : %SystemRoot%\System32\Winevt\Logs\Security.evtx
MaximumSizeInBytes : 1073741824
LogMode : Circular
OwningProviderName :
ProviderNames : {Microsoft-Windows-WUSA, Microsoft-Windows-ActionQueue...
ProviderLevel :
ProviderKeywords :
ProviderBufferSize : 64
ProviderMinimumNumberOfBuffers : 0
ProviderMaximumNumberOfBuffers : 64
ProviderLatency : 1000
ProviderControlGuid :
Cmdleten använder parametern ListLog för att ange säkerhetsloggen.Get-WinEvent
Objektet sparas i en variabel. Egenskapen MaximumSizeInBytes är inställd på 1 gigabyte på objektet. Metoden SaveChanges anropas för att skicka ändringen till systemet i ett försöksblock för att hantera åtkomstöverträdelser. Cmdleten Get-WinEvent
anropas igen i säkerhetsloggen och skickas till cmdleten Format-List
för att kontrollera att egenskapen MaximumSizeInBytes har sparats på datorn.
Exempel 4: Hämta händelseloggar från en server
Det här kommandot hämtar endast händelseloggar på den lokala datorn som innehåller händelser. Det är möjligt att en loggs RecordCount är null eller noll. I exemplet används variabeln $_
. Mer information finns i about_Automatic_Variables.
Get-WinEvent -ListLog * -ComputerName localhost | Where-Object { $_.RecordCount }
LogMode MaximumSizeInBytes RecordCount LogName
------- ------------------ ----------- -------
Circular 15532032 14546 Application
Circular 1052672 117 Azure Information Protection
Circular 1052672 2990 CxAudioSvcLog
Circular 1052672 9 MSFTVPN Setup
Circular 1052672 282 OAlerts
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern ListLog använder jokertecknet asterisk (*
) för att visa information om varje logg. Parametern ComputerName anger att loggarna ska hämtas från den lokala datorn localhost. Objekten skickas ned i pipelinen till cmdleten Where-Object
. Where-Object
använder $_.RecordCount
för att endast returnera loggar som innehåller data. $_
är en variabel som representerar det aktuella objektet i pipelinen. RecordCount är en egenskap för objektet med ett värde som inte är null.
Exempel 5: Hämta händelseloggar från flera servrar
Det här exemplet hämtar objekt som representerar programhändelseloggarna på tre datorer: Server01, Server02 och Server03. Nyckelordet ForEach används eftersom parametern ComputerName endast accepterar ett värde. Mer information finns i about_Foreach.
$S = 'Server01', 'Server02', 'Server03'
ForEach ($Server in $S) {
Get-WinEvent -ListLog Application -ComputerName $Server |
Select-Object LogMode, MaximumSizeInBytes, RecordCount, LogName,
@{name='ComputerName'; expression={$Server}} |
Format-Table -AutoSize
}
LogMode MaximumSizeInBytes RecordCount LogName ComputerName
------- ------------------ ----------- ------- ------------
Circular 15532032 14577 Application Server01
Circular 15532032 9689 Application Server02
Circular 15532032 5309 Application Server03
Variabeln $S
lagrar namnen tre servrar: Server01, Server02 och Server03. ForEach-instruktionen använder en loop för att bearbeta varje server, ($Server in $S)
. Skriptblocket i klammerparenteserna ({ }
) kör Get-WinEvent
kommandot. Parametern ListLog anger programloggen. Parametern ComputerName använder variabeln $Server
för att hämta logginformation från varje server.
Objekten skickas ned i pipelinen till cmdleten Select-Object
. Select-Object
hämtar egenskaperna LogMode, MaximumSizeInBytes, RecordCount, LogName och använder ett beräknat uttryck för att visa ComputerName med variabeln $Server
. Objekten skickas ned i pipelinen till cmdleten Format-Table
för att visa utdata i PowerShell-konsolen. Parametern AutoSize formaterar utdata så att de passar skärmen.
Exempel 6: Hämta händelseloggprovidrar och loggnamn
Det här kommandot hämtar händelseloggprovidrar och loggarna som de skriver till.
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern ListProvider använder jokertecknet asterisk (*
) för att visa information om varje provider. I utdata är Namnet providern och LogLinks är loggen som providern skriver till.
Exempel 7: Hämta alla händelseloggprovidrar som skriver till en specifik logg
Det här kommandot hämtar alla leverantörer som skriver till programloggen.
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern ListLog använder Programmet för att hämta objekt för loggen. ProviderNames är en egenskap för objektet och visar de leverantörer som skriver till programloggen.
Exempel 8: Hämta namn på händelseloggprovidern som innehåller en specifik sträng
Det här kommandot hämtar händelseloggprovidrar med namn som innehåller en specifik sträng i providerns namn.
Get-WinEvent -ListProvider *Policy*
Name : Group Policy Applications
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Client
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : Group Policy Data Sources
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern ListProvider använder jokertecknet asterisk (*
) för att hitta principen var som helst i providerns namn.
Exempel 9: Hämta händelse-ID:t som händelseprovidern genererar
Det här kommandot visar de händelse-ID:er som händelseprovidern Microsoft-Windows-GroupPolicy genererar tillsammans med händelsebeskrivningen.
(Get-WinEvent -ListProvider Microsoft-Windows-GroupPolicy).Events | Format-Table Id, Description
Id Description
-- -----------
1500 The Group Policy settings for the computer were processed successfully...
1501 The Group Policy settings for the user were processed successfully...
4115 Group Policy Service started.
4116 Started the Group Policy service initialization phase.
4117 Group Policy Session started.
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern ListProvider anger providern Microsoft-Windows-GroupPolicy. Uttrycket omsluts av parenteser och använder egenskapen Händelser för att hämta objekt. Objekten skickas ned i pipelinen till cmdleten Format-Table
. Format-Table
visar ID och Beskrivning av händelseobjekten.
Exempel 10: Hämta logginformation från händelseobjektegenskaper
Det här exemplet visar hur du hämtar information om en loggs innehåll med hjälp av egenskaper för händelseobjekt. Händelseobjekt lagras i en variabel och grupperas och räknas sedan efter händelse-ID och nivå.
$Event = Get-WinEvent -LogName 'Windows PowerShell'
$Event.Count
$Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
$Event | Group-Object -Property LevelDisplayName -NoElement
195
Count Name
----- ----
147 600
22 400
21 601
3 403
2 103
Count Name
----- ----
2 Warning
193 Information
Cmdleten Get-WinEvent
använder LogName-parametern för att ange Windows PowerShell-händelseloggen. Händelseobjekten lagras i variabeln $Event
. Egenskapen Count för $Event
visar det totala antalet loggade händelser.
Variabeln $Event
skickas ned i pipelinen till cmdleten Group-Object
. Group-Object
använder egenskapsparametern för att ange ID-egenskapen och räknar objekten efter händelse-ID-värdet. Parametern NoElement tar bort andra egenskaper från objektens utdata. De grupperade objekten skickas ned i pipelinen till cmdleten Sort-Object
. Sort-Object
använder egenskapsparametern för att sortera objekten efter Antal. Parametern Fallande visar utdata efter antal, från högsta till lägsta. I utdata innehåller kolumnen Antal det totala antalet för varje händelse. Kolumnen Namn innehåller grupperade händelse-ID-nummer.
Variabeln $Event
skickas ned i pipelinen till cmdleten Group-Object
. Group-Object
använder egenskapsparametern för att ange egenskapen LevelDisplayName och räknar objekten efter LevelDisplayName. Objekten grupperas efter nivåer som Varning och Information.
Parametern NoElement tar bort andra egenskaper från utdata. I utdata innehåller kolumnen Antal det totala antalet för varje händelse. Kolumnen Namn innehåller det grupperade LevelDisplayName.
Exempel 11: Hämta felhändelser som har en angiven sträng i namnet
I det här exemplet används en kommaavgränsad sträng med loggnamn. Utdata grupperas efter nivån, till exempel fel eller varning och loggnamnet.
Get-WinEvent -LogName *PowerShell*, Microsoft-Windows-Kernel-WHEA* |
Group-Object -Property LevelDisplayName, LogName -NoElement |
Format-Table -AutoSize
Count Name
----- ----
1 Error, PowerShellCore/Operational
26 Information, Microsoft-Windows-Kernel-WHEA/Operational
488 Information, Microsoft-Windows-PowerShell/Operational
77 Information, PowerShellCore/Operational
9835 Information, Windows PowerShell
19 Verbose, PowerShellCore/Operational
444 Warning, Microsoft-Windows-PowerShell/Operational
512 Warning, PowerShellCore/Operational
Cmdleten Get-WinEvent
hämtar logginformation från datorn. LogName-parametern använder en kommaavgränsad sträng med jokertecknet asterisk (*
) för att ange loggnamnen. Objekten skickas ned i pipelinen till cmdleten Group-Object
. Group-Object
använder egenskapsparametern för att gruppera objekten efter LevelDisplayName och LogName. Parametern NoElement tar bort andra egenskaper från utdata. De grupperade objekten skickas ned i pipelinen till cmdleten Format-Table
. Format-Table
använder parametern AutoSize för att formatera kolumnerna. Kolumnen Antal innehåller det totala antalet för varje händelse. Kolumnen Namn innehåller grupperade LevelDisplayName och LogName.
Exempel 12: Hämta händelser från en arkiverad händelselogg
Get-WinEvent
kan hämta händelseinformation från sparade loggfiler. Det här exemplet använder en arkiverad PowerShell-logg som lagras på den lokala datorn.
Get-WinEvent -Path 'C:\Test\Windows PowerShell.evtx'
ProviderName: PowerShell
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 13:54:13 403 Information Engine state is changed from Available to Stopped...
3/15/2019 13:54:13 400 Information Engine state is changed from None to Available...
3/15/2019 13:54:13 600 Information Provider "Variable" is Started...
3/15/2019 13:54:13 600 Information Provider "Function" is Started...
3/15/2019 13:54:13 600 Information Provider "FileSystem" is Started...
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern Path anger katalogen och filnamnet.
Exempel 13: Hämta ett visst antal händelser från en arkiverad händelselogg
Dessa kommandon hämtar ett specifikt antal händelser från en arkiverad händelselogg. Get-WinEvent
har parametrar som kan hämta ett maximalt antal händelser eller de äldsta händelserna. Det här exemplet använder en arkiverad PowerShell-logg som lagras i C:\Test\PowerShellCore Operational.evtx.
Get-WinEvent -Path 'C:\Test\PowerShellCore Operational.evtx' -MaxEvents 100
ProviderName: PowerShellCore
TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
3/15/2019 09:54:54 4104 Warning Creating Scriptblock text (1 of 1):...
3/15/2019 09:37:13 40962 Information PowerShell console is ready for user input
3/15/2019 07:56:24 4104 Warning Creating Scriptblock text (1 of 1):...
...
3/7/2019 10:53:22 40961 Information PowerShell console is starting up
3/7/2019 10:53:22 8197 Verbose Runspace state changed to Opening
3/7/2019 10:53:22 8195 Verbose Opening RunspacePool
Cmdleten Get-WinEvent
hämtar logginformation från datorn. Parametern Path anger katalogen och filnamnet. Parametern MaxEvents anger att 100 poster visas, från den senaste till den äldsta.
Exempel 14: Händelsespårning för Windows
Händelsespårning för Windows (ETW) skriver händelser till loggen när händelser inträffar. Händelserna lagras i den ordning som är äldsta till nyaste. En arkiverad ETW-fil sparas som t.ex .etl
. TraceLog.etl.
Händelserna visas i den ordning de skrivs till loggen, så den äldsta parametern krävs.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
Sort-Object -Property TimeCreated -Descending |
Select-Object -First 100
Cmdleten Get-WinEvent
hämtar logginformation från den arkiverade filen. Parametern Path anger katalogen och filnamnet. Den äldsta parametern används för att mata ut händelser i den ordning de skrivs, äldsta till nyaste. Objekten skickas nedåt i pipelinen till cmdleten Sort-Object
Sort-Object
och sorterar objekten i fallande ordning efter värdet för egenskapen TimeCreated . Objekten skickas ned i pipelinen till cmdleten Select-Object
som visar de 100 senaste händelserna.
Exempel 15: Hämta händelser från en händelsespårningslogg
Det här exemplet visar hur du hämtar händelserna från en händelsespårningsloggfil (.etl
) och en arkiverad Windows PowerShell-loggfil (.evtx
). Du kan kombinera flera filtyper i ett enda kommando.
Eftersom filerna innehåller samma typ av .NET Framework-objekt , EventLogRecord, kan du filtrera dem med samma egenskaper. Kommandot kräver den äldsta parametern eftersom den läser från en .etl
fil, men den äldsta parametern gäller för varje fil.
Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
Where-Object { $_.Id -eq '403' }
Cmdleten Get-WinEvent
hämtar logginformation från de arkiverade filerna. Parametern Path använder en kommaavgränsad lista för att ange varje filkatalog och filnamn. Den äldsta parametern används för att mata ut händelser i den ordning de skrivs, äldsta till nyaste. Objekten skickas ned i pipelinen till cmdleten Where-Object
. Where-Object
använder ett skriptblock för att hitta händelser med ett ID på 403. Variabeln $_
representerar det aktuella objektet i pipelinen och ID är egenskapen Händelse-ID.
Exempel 16: Filtrera händelseloggresultat
Det här exemplet visar en mängd olika metoder för att filtrera och välja händelser från en händelselogg. Alla dessa kommandon hämtar händelser som inträffat under de senaste 24 timmarna från Windows PowerShell-händelseloggen.
Filtermetoderna är effektivare än cmdleten Where-Object
. Filter tillämpas när objekten hämtas. Where-Object
hämtar alla objekt och tillämpar sedan filter på alla objekt.
# Using the Where-Object cmdlet:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }
# Using the FilterHashtable parameter:
$Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }
# Using the FilterXML parameter:
$xmlQuery = @'
<QueryList>
<Query Id="0" Path="Windows PowerShell">
<Select Path="System">*[System[(Level=3) and
TimeCreated[timediff(@SystemTime) <= 86400000]]]</Select>
</Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery
# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]'
Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath $XPath
Exempel 17: Använd FilterHashtable för att hämta händelser från programloggen
I det här exemplet används parametern FilterHashtable för att hämta händelser från programloggen. Hash-tabellen använder nyckel/värde-par . Mer information om parametern FilterHashtable finns i Skapa Get-WinEvent-frågor med FilterHashtable. Mer information om hash-tabeller finns i about_Hash_Tables.
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
Cmdleten Get-Date
använder metoden AddDays för att hämta ett datum som är två dagar före det aktuella datumet. Datumobjektet lagras i variabeln $Date
.
Cmdleten Get-WinEvent
hämtar logginformation. Parametern FilterHashtable används för att filtrera utdata. LogName-nyckeln anger värdet som programloggen. StartTime-nyckeln använder värdet som lagras i variabeln$Date
. Id-nyckeln använder ett händelse-ID-värde, 1003.
Exempel 18: Använd FilterHashtable för att hämta programfel
I det här exemplet används parametern FilterHashtable för att hitta internet explorer-programfel som inträffade under den senaste veckan.
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
Logname='Application'
ProviderName='Application Error'
Data='iexplore.exe'
StartTime=$StartTime
}
Cmdleten Get-Date
använder metoden AddDays för att hämta ett datum som är sju dagar före det aktuella datumet. Datumobjektet lagras i variabeln $StartTime
.
Cmdleten Get-WinEvent
hämtar logginformation. Parametern FilterHashtable används för att filtrera utdata. LogName-nyckeln anger värdet som programloggen. ProviderName-nyckeln använder värdet Programfel, som är händelsens källa. Datanyckeln använder värdet iexplore.exe StartTime-nyckeln använder värdet som lagras i $StartTime
variabeln.
Exempel 19: Använd SuppressHashFilter för att filtrera programfel
Precis som exempel 16 ovan använder det här exemplet parametern FilterHashtable för att hämta händelser från programloggen. Vi lägger dock till nyckeln SuppressHashFilter för att filtrera bort händelser på informationsnivå .
$Date = (Get-Date).AddDays(-2)
$filter = @{
LogName='Application'
StartTime=$Date
SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter
I det här exemplet Get-WinEvent
hämtar du alla händelser från programloggen under de senaste två dagarna förutom de som har en nivå på 4 (information).
Parametrar
-ComputerName
Anger namnet på datorn som den här cmdleten hämtar händelser från händelseloggarna. Skriv NetBIOS-namnet, en IP-adress eller datorns fullständigt kvalificerade domännamn (FQDN). Standardvärdet är den lokala datorn localhost. Den här parametern accepterar bara ett datornamn i taget.
Om du vill hämta händelseloggar från fjärrdatorer konfigurerar du brandväggsporten för händelseloggtjänsten så att fjärråtkomst tillåts.
Den här cmdleten förlitar sig inte på PowerShell-fjärrkommunikation. Du kan använda parametern ComputerName även om datorn inte är konfigurerad för att köra fjärrkommandon.
Typ: | String |
Alias: | Cn |
Position: | Named |
Standardvärde: | Local computer |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Credential
Anger ett användarkonto som har behörighet att utföra den här åtgärden. Standardvärdet är den aktuella användaren.
Ange ett användarnamn, till exempel User01 eller Domain01\User01. Eller ange ett PSCredential-objekt , till exempel ett som genereras av cmdleten Get-Credential
. Om du skriver ett användarnamn uppmanas du att ange ett lösenord. Om du bara skriver parameternamnet uppmanas du att ange både ett användarnamn och ett lösenord.
Typ: | PSCredential |
Position: | Named |
Standardvärde: | Current user |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-FilterHashtable
Anger en fråga i hashtabellformat för att välja händelser från en eller flera händelseloggar. Frågan innehåller en hash-tabell med ett eller flera nyckel/värde-par .
Hash-tabellfrågor har följande regler:
- Nycklar och värden är skiftlägeskänsliga.
- Jokertecken är endast giltiga i de värden som är associerade med nycklarna LogName och ProviderName .
- Varje nyckel kan bara visas en gång i varje hash-tabell.
- Värdet Sökväg tar sökvägar till
.etl
,.evt
och.evtx
loggfiler. - Nycklarna LogName, Path och ProviderName kan användas i samma fråga.
- UserID-nyckeln kan ha en giltig säkerhetsidentifierare (SID) eller ett domännamn som kan användas för att konstruera ett giltigt System.Security.Principal.NTAccount-objekt.
- Datavärdet tar händelsedata i ett namnlöst fält. Till exempel händelser i klassiska händelseloggar.
<named-data>
nyckel representerar ett namngivet händelsedatafält.
När Get-WinEvent
det inte går att tolka ett nyckel/värde-par tolkas nyckeln som ett skiftlägeskänsligt namn för händelsedata i händelsen.
De giltiga Get-WinEvent
nyckel-/värdeparen är följande:
- LogName=
<String[]>
- ProviderName=
<String[]>
- Sökväg=
<String[]>
- Nyckelord=
<Long[]>
- ID=
<Int32[]>
- Nivå=
<Int32[]>
- StartTime=
<DateTime>
- EndTime=
<DateTime>
- UserID=
<SID>
- Data=
<String[]>
<named-data>
=<String[]>
- SuppressHashFilter=
<Hashtable>
Typ: | Hashtable[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-FilterXml
Anger en strukturerad XML-fråga som den här cmdleten väljer händelser från en eller flera händelseloggar.
Om du vill generera en giltig XML-fråga använder du funktionerna Skapa anpassad vy och Filtrera aktuell logg i Windows Prikazivač događaja. Använd objekten i dialogrutan för att skapa en fråga och klicka sedan på fliken XML för att visa frågan i XML-format. Du kan kopiera XML från XML-fliken till värdet för parametern FilterXml . Mer information om Prikazivač događaja funktioner finns i Prikazivač događaja Hjälp.
Använd en XML-fråga för att skapa en komplex fråga som innehåller flera XPath-instruktioner. Med XML-formatet kan du också använda ett Utelämna XML-element som exkluderar händelser från frågan. Mer information om XML-schemat för händelseloggfrågor finns i Frågeschema och avsnittet XML-händelsefrågor i Händelseval.
Du kan också skapa ett Utelämna-element med parametern FilterHashtable .
Typ: | XmlDocument |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-FilterXPath
Anger en XPath-fråga som den här cmdleten väljer händelser från en eller flera loggar.
Mer information om XPath-språket finns i XPath-referens och avsnittet Urvalsfilter i Händelseval.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Force
Hämtar felsöknings- och analysloggar utöver andra händelseloggar. Force-parametern krävs för att hämta en felsöknings- eller analyslogg när värdet för namnparametern innehåller jokertecken.
Som standard undantar cmdleten Get-WinEvent
dessa loggar om du inte anger det fullständiga namnet på en felsöknings- eller analyslogg.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-ListLog
Anger händelseloggarna. Ange händelseloggnamnen i en kommaavgränsad lista. Jokertecken tillåts. Om du vill hämta alla loggar använder du jokertecknet asterisk (*
).
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
-ListProvider
Anger de händelseloggprovidrar som den här cmdleten hämtar. En händelseloggprovider är ett program eller en tjänst som skriver händelser till händelseloggen.
Ange providernamnen i en kommaavgränsad lista. Jokertecken tillåts. Om du vill hämta leverantörerna av alla händelseloggar på datorn använder du jokertecknet asterisk (*
).
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | True |
-LogName
Anger de händelseloggar som den här cmdleten hämtar händelser från. Ange händelseloggnamnen i en kommaavgränsad lista. Jokertecken tillåts. Du kan också skicka loggnamn till cmdleten Get-WinEvent
.
Kommentar
PowerShell begränsar inte mängden loggar som du kan begära. Cmdleten Get-WinEvent
frågar dock Windows-API:et som har en gräns på 256. Detta kan göra det svårt att filtrera igenom alla dina loggar samtidigt. Du kan kringgå detta genom att använda en foreach
loop för att iterera genom varje logg så här: Get-WinEvent -ListLog * | ForEach-Object{ Get-WinEvent -LogName $_.Logname }
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
-MaxEvents
Anger det maximala antalet händelser som returneras. Ange ett heltal, till exempel 100. Standardvärdet är att returnera alla händelser i loggarna eller filerna.
Typ: | Int64 |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Oldest
Ange att den här cmdleten hämtar händelserna i den äldsta första ordningen. Som standard returneras händelser i den senaste ordningen.
Den här parametern krävs för att hämta händelser från .etl
och .evt
filer och från felsöknings- och analysloggar. I dessa filer registreras händelser i äldst ordning och händelserna kan endast returneras i äldst ordning.
Typ: | SwitchParameter |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
-Path
Anger sökvägen till de händelseloggfiler som den här cmdleten hämtar händelser från. Ange sökvägarna till loggfilerna i en kommaavgränsad lista eller använd jokertecken för att skapa sökvägsmönster.
Get-WinEvent
stöder filer med filnamnstilläggen .evt
, .evtx
och .etl
. Du kan inkludera händelser från olika filer och filtyper i samma kommando.
Typ: | String[] |
Alias: | PSPath |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
-ProviderName
Anger, som en strängmatris, de händelseloggprovidrar som denna cmdlet hämtar händelser från. Ange providernamnen i en kommaavgränsad lista eller använd jokertecken för att skapa providernamnmönster.
En händelseloggprovider är ett program eller en tjänst som skriver händelser till händelseloggen. Det är inte en PowerShell-provider.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | True |
Godkänn pipeline-indata: | True |
Godkänn jokertecken: | True |
Indata
Du kan skicka ett LogName (sträng) till den här cmdleten.
Du kan skicka en FilterXML-fråga till den här cmdleten.
Du kan skicka en FilterHashtable-fråga till den här cmdleten.
Utdata
Med parametern ListLog returnerar den här cmdleten EventLogConfiguration-objekt .
Som standard returnerar den här cmdleten EventLogRecord-objekt .
Med parametern ListProvider returnerar den här cmdleten ProviderMetadata-objekt .
Kommentarer
Get-WinEvent
är utformad för att ersätta cmdleten Get-EventLog
på datorer som kör Windows Vista och senare versioner av Windows. Get-EventLog
hämtar endast händelser i klassiska händelseloggar. Get-EventLog
behålls för bakåtkompatibilitet.
Get-WinEvent
Cmdletarna och Get-EventLog
stöds inte i Windows Pre-installation Environment (Windows PE).