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äkerhetsloggenoch 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-Objecthä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-Tablevisar 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-WinEventanvänder LogName-parametern för att ange Windows PowerShell-händelseloggen. 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-Objectanvä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-Objectanvä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-Objectanvä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-Objectanvä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-ObjectSort-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 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 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-Dateanvä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-Dateanvä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-nyckelnanvä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.

Type:String
Aliases:Cn
Position:Named
Default value:Local computer
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters: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, .evtoch .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-WinEventnyckel-/värdeparen är följande:

  • LogName=<String[]>
  • ProviderName=<String[]>
  • Sökväg=<String[]>
  • Sökord=<Long[]>
  • ID=<Int32[]>
  • Nivå=<Int32[]>
  • Starttime=<DateTime>
  • Endtime=<DateTime>
  • UserID=<SID>
  • Data=<String[]>
  • <named-data>=<String[]>
  • SuppressHashFilter=<Hashtable>
Type:Hashtable[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 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 XML-fliken till värdet för parametern FilterXml . Mer information om Loggboken funktioner finns i Loggboken 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 .

Type:XmlDocument
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 (*).

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 (*).

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 }

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Aliases:PSPath
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

Indata

String

Du kan skicka ett 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 ä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).