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 $Eventvisar 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, .evtoch .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-WinEventnyckel/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, .evtxoch .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

String

Du kan skicka en LogName- (sträng) till den här cmdleten.

XmlDocument

Du kan skicka en FilterXML- fråga till den här cmdleten.

Hashtable

Du kan skicka en FilterHashtable- fråga till den här cmdleten.

Utdata

EventLogConfiguration

Med parametern ListLog returnerar den här cmdleten EventLogConfiguration objekt.

EventLogRecord

Som standard returnerar den här cmdleten EventLogRecord objekt.

ProviderMetadata

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