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 loggarna System och Application. 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 returnerar Get-WinEvent
händelseinformation i den ordning som är den senaste till den äldsta.
Get-WinEvent
listar händelseloggar och händelseloggprovidrar. Om du vill avbryta kommandot trycker du på CTRL+C. 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
kan du filtrera händelser med hjälp av XPath-frågor, strukturerade XML-frågor och hashtabellfrå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 vara 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 Get-WinEvent
använder parametern ListLog för att ange installationsloggen. Objektet skickas ned i pipelinen till cmdleten Format-List
.
Format-List
använder parametern Property 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 Security-loggen. 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 Get-WinEvent
använder parametern ListLog för att ange loggen Security. 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 loggen Security 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 vara 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 för att hämta loggarna 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 händelseloggarna Application 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, Server02och Server03. Instruktionen ForEach använder en loop för att bearbeta varje server ($Server in $S)
. Skriptblocket i klammerparenteserna ({ }
) kör kommandot Get-WinEvent
. Parametern ListLog anger loggen Application. 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, LogNameoch 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 Name 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 loggen Application.
(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 Application för att hämta objekt för loggen.
ProviderNames är en egenskap för objektet och visar de leverantörer som skriver till Application-loggen.
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 princip någonstans 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 Microsoft-Windows-GroupPolicy händelseprovider 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 Events för att hämta objekt. Objekten skickas ned i pipelinen till cmdleten Format-Table
.
Format-Table
visar -ID:t och Beskrivning för 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 parametern LogName för att ange händelseloggen Windows PowerShell. 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 parametern Egenskap för att ange egenskapen ID 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 parametern Property för att sortera objekten efter Count. Parametern Fallande visar utdata efter antal, från högsta till lägsta. I utdata innehåller kolumnen Count 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 parametern Property 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 Count det totala antalet för varje händelse. Kolumnen Name innehåller den 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. Parametern LogName 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 parametern Property 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 Count innehåller det totala antalet händelser. Kolumnen Name innehåller den 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 få 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 en .etl
som TraceLog.etl.
Händelserna visas i den ordning de skrivs till loggen, så parametern Äldsta 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. Parametern äldsta används för att mata ut händelser i den ordning de skrivs, äldsta till nyaste. Objekten skickas ned i pipelinen till Sort-Object
cmdlet Sort-Object
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 kan du filtrera dem med samma egenskaper EventLogRecord. Kommandot kräver parametern äldsta eftersom den läser från en .etl
fil, men parametern Äldsta 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. Parametern äldsta 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 -ID403. 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 händelseloggen Windows PowerShell.
Filtermetoderna är effektivare än att använda 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 loggen Application. 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 få 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. Nyckeln LogName anger värdet som loggen Application. Nyckeln StartTime använder värdet som lagras i variabeln $Date
. Nyckeln ID 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 få 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. Nyckeln LogName anger värdet som loggen Application. Nyckeln ProviderName använder värdet application error, som är händelsens Source. Nyckeln Data använder värdet iexplore.exe Nyckeln StartTime använder värdet som lagras i $StartTime
variabel.
Exempel 19: Använd SuppressHashFilter för att filtrera programfel
Precis som i exempel 16 ovan använder det här exemplet parametern FilterHashtable för att hämta händelser från loggen Application. Vi lägger dock till nyckeln SuppressHashFilter för att filtrera bort Information-nivåhändelser.
$Date = (Get-Date).AddDays(-2)
$filter = @{
LogName='Application'
StartTime=$Date
SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter
I det här exemplet hämtar Get-WinEvent
alla händelser från loggen Application för 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 objekt som genereras av Get-Credential
-cmdleten. 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 en 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 LogName- och ProviderName nycklar.
- Varje nyckel kan bara visas en gång i varje hash-tabell.
- Värdet Path tar sökvägar till
.etl
,.evt
och.evtx
loggfiler. - Nycklarna LogName, Pathoch ProviderName kan användas i samma fråga.
- UserID- nyckel kan ta en giltig säkerhetsidentifierare (SID) eller ett domännamn som kan användas för att konstruera ett giltigt System.Security.Principal.NTAccount-objekt.
- Värdet Data 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
inte kan tolka ett nyckel/värde par tolkas nyckeln som ett skiftlägeskänsligt namn för händelsedata i händelsen.
Giltiga Get-WinEvent
nyckel/värde par ä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 Skapa anpassad vy och Filtrera aktuell logg funktioner i Windows Loggboken. 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 FLIKEN XML till värdet för parametern FilterXml. Mer information om funktionerna i Loggboken finns i Loggbokens 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 Query Schema 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. Parametern Force 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
.
Not
PowerShell begränsar inte mängden loggar som du kan begära. Men Get-WinEvent
-cmdleten frågar 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 en 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
har utformats 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.
Cmdletarna Get-WinEvent
och Get-EventLog
stöds inte i Windows Pre-installation Environment (Windows PE).