Get-WinEvent

Események lekérése eseménynaplókból és eseménykövetési naplófájlokból helyi és távoli számítógépeken.

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

Ez a parancsmag csak a Windows platformon érhető el.

A Get-WinEvent parancsmag eseményeket kér le az eseménynaplókból, beleértve a klasszikus naplókat, például a rendszer - és alkalmazásnaplókat . A parancsmag adatokat kér le a Windows Vista rendszerben bevezetett Windows eseménynapló-technológia által generált eseménynaplókból, valamint a Windows eseménykövetése (ETW) által létrehozott naplófájlokban lévő eseményekből. Alapértelmezés szerint Get-WinEvent az eseményadatokat a legújabbtól a legrégebbiig sorrendben adja vissza.

Get-WinEvent felsorolja az eseménynaplókat és az eseménynapló-szolgáltatókat. A parancs megszakításához nyomja le a CTRL C billentyűkombinációt.+ Eseményeket lekérhet a kiválasztott naplókból vagy a kiválasztott eseményszolgáltatók által létrehozott naplókból. Egyetlen parancsban több forrásból származó eseményeket is kombinálhat. Get-WinEvent Lehetővé teszi az események szűrését XPath-lekérdezések, strukturált XML-lekérdezések és kivonattáblázat-lekérdezések használatával.

Ha nem Rendszergazda istratorként futtatja a PowerShellt, hibaüzenetek jelenhetnek meg, amelyekből nem tud adatokat lekérni egy naplóról.

Példák

1. példa: Az összes napló lekérése egy helyi számítógépről

Ez a parancs lekéri az összes eseménynaplót a helyi számítógépen. A naplók a lekérési sorrendben Get-WinEvent jelennek meg. A rendszer először a klasszikus naplókat kéri le, majd az új Windows-eseménynaplókat. Előfordulhat, hogy a napló RecordCount értéke null, ami üres vagy nulla.

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

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A ListLog paraméter a csillag (*) helyettesítő karakterrel jeleníti meg az egyes naplók adatait.

2. példa: A klasszikus beállítási napló lekérése

Ez a parancs lekéri a klasszikus telepítési naplót képviselő EventLogConfiguration objektumot. Az objektum információkat tartalmaz a naplóról, például a fájlméretről, a szolgáltatóról, a fájl elérési útjáról, valamint arról, hogy engedélyezve van-e a napló.

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            :

A Get-WinEvent parancsmag a ListLog paraméter használatával adja meg a telepítési naplót. A rendszer elküldi az objektumot a folyamatnak a Format-List parancsmagnak. Format-ListA Tulajdonság paramétert használja a csillag (*) helyettesítő karakterrel az egyes tulajdonságok megjelenítéséhez.

3. példa: A klasszikus biztonsági napló konfigurálása

Ez a parancs lekéri a klasszikus biztonsági naplót jelképező EventLogConfiguration objektumot. Az objektum ezután a napló beállításainak konfigurálására szolgál, például a maximális fájlméretre, a fájl elérési útjára, valamint arra, hogy engedélyezve van-e a napló.

$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            :

A Get-WinEvent parancsmag a ListLog paraméter használatával adja meg a biztonsági naplót. Az objektumot egy változóba menti a rendszer. A MaximumSizeInBytes tulajdonság értéke 1 gigabájt az objektumon. A Rendszer meghívja a SaveChanges metódust, hogy leküldje a módosítást a rendszernek egy kísérletblokkon belül a hozzáférés-szabálysértések kezelése érdekében. A Get-WinEvent rendszer ismét meghívja a parancsmagot a Biztonsági naplóban, és a Format-List parancsmagra állítva ellenőrzi, hogy a MaximumSizeInBytes tulajdonságot mentette-e a gépen.

4. példa: Eseménynaplók lekérése kiszolgálóról

Ez a parancs csak az eseményeket tartalmazó helyi számítógépen kapja meg az eseménynaplókat. Előfordulhat, hogy a napló RecordCount értéke null vagy nulla. A példa a változót $_ használja. További információ: 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

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A ListLog paraméter a csillag (*) helyettesítő karakterrel jeleníti meg az egyes naplók adatait. A ComputerName paraméter megadja, hogy lekérje a naplókat a helyi számítógépről, a localhostról. A rendszer elküldi az objektumokat a folyamatnak a Where-Object parancsmagnak. Where-Object csak az adatokat tartalmazó naplók visszaadására használja $_.RecordCount . $_ egy változó, amely a folyamat aktuális objektumát jelöli. A RecordCount az objektum nem null értékű tulajdonsága.

5. példa: Eseménynaplók lekérése több kiszolgálóról

Ez a példa az alkalmazás eseménynaplóit három számítógépen jeleníti meg: Server01, Server02 és Server03. A ForEach kulcsszót azért használja a rendszer, mert a ComputerName paraméter csak egy értéket fogad el. További információ: 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

A változó $S három kiszolgáló nevét tárolja: Server01, Server02 és Server03. A ForEach utasítás egy hurkot használ az egyes kiszolgálók feldolgozásához. ($Server in $S) A kapcsos zárójelek ({ }) szkriptblokkja futtatja a Get-WinEvent parancsot. A ListLog paraméter az alkalmazásnaplótadja meg. A ComputerName paraméter a változót $Server használja az egyes kiszolgálók naplóadatainak lekéréséhez.

A rendszer elküldi az objektumokat a folyamatnak a Select-Object parancsmagnak. Select-Objectlekéri a LogMode, a MaximumSizeInBytes, a RecordCount, a LogName tulajdonságokat, és egy számított kifejezéssel jeleníti meg a ComputerName tulajdonságot a $Server változó használatával. A rendszer elküldi az objektumokat a folyamatnak a Format-Table parancsmagnak, hogy megjelenítse a kimenetet a PowerShell-konzolon. Az AutoSize paraméter úgy formázja a kimenetet, hogy illeszkedjen a képernyőhöz.

6. példa: Eseménynapló-szolgáltatók és naplónevek lekérése

Ez a parancs lekéri az eseménynapló-szolgáltatókat és azokat a naplókat, amelyekre írnak.

Get-WinEvent -ListProvider *

Name     : .NET Runtime
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

Name     : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes  : {}
Tasks    : {}

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A ListProvider paraméter a csillag (*) helyettesítő karakter használatával jeleníti meg az egyes szolgáltatók adatait. A kimenetben a Név a szolgáltató, a LogLinks pedig az a napló, amelybe a szolgáltató ír.

7. példa: Az összes eseménynapló-szolgáltató lekérése, amely egy adott naplóba ír

Ez a parancs lekéri az összes olyan szolgáltatót, amely az alkalmazásnaplóba ír.

(Get-WinEvent -ListLog Application).ProviderNames

.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A ListLog paraméter alkalmazás használatával szerzi be a napló objektumait. A ProviderNames az objektum tulajdonsága, és megjeleníti az alkalmazásnaplóba író szolgáltatókat.

8. példa: Adott sztringet tartalmazó eseménynapló-szolgáltatónevek lekérése

Ez a parancs lekéri az eseménynapló-szolgáltatókat olyan névvel, amely egy adott sztringet tartalmaz a szolgáltató nevében.

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    : {}

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A ListProvider paraméter a csillag (*) helyettesítő karakterrel megkeresi a Házirendet a szolgáltató nevében.

9. példa: Az eseményszolgáltató által létrehozott eseményazonosítók lekérése

Ez a parancs felsorolja a Microsoft-Windows-GroupPolicy eseményszolgáltató által létrehozott eseményazonosítókat az esemény leírásával együtt.

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

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A ListProvider paraméter a Microsoft-Windows-GroupPolicy szolgáltatót határozza meg. A kifejezés zárójelekbe van csomagolva, és az Események tulajdonságot használja az objektumok lekéréséhez. A rendszer elküldi az objektumokat a folyamatnak a Format-Table parancsmagnak. Format-Table megjeleníti az eseményobjektumok azonosítóját és leírását .

10. példa: Naplóadatok lekérése az eseményobjektum tulajdonságaiból

Ez a példa bemutatja, hogyan kérhet le információkat egy napló tartalmáról eseményobjektum-tulajdonságok használatával. Az eseményobjektumok egy változóban vannak tárolva, majd eseményazonosító és szint szerint vannak csoportosítva és megszámolva.

$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

A Get-WinEvent parancsmag a LogName paraméter használatával adja meg a Windows PowerShell eseménynaplóját. Az eseményobjektumok a $Event változóban vannak tárolva. A Count tulajdonság $Eventa naplózott események teljes számát jeleníti meg.

A $Event rendszer elküldi a változót a folyamatnak a Group-Object parancsmagnak. Group-ObjectA Tulajdonság paraméter használatával adja meg az Id tulajdonságot, és megszámolja az objektumokat az eseményazonosító értéke alapján. A NoElement paraméter eltávolítja a többi tulajdonságot az objektumok kimenetéből. A rendszer elküldi a csoportosított objektumokat a folyamatnak a Sort-Object parancsmagnak. Sort-ObjectA Tulajdonság paraméter használatával rendezi az objektumokat a Darabszám szerint. A Csökkenő paraméter szám szerint jeleníti meg a kimenetet a legmagasabbtól a legalacsonyabbig. A kimenetben a Darabszám oszlop az egyes események teljes számát tartalmazza. A Név oszlop a csoportosított eseményazonosító számokat tartalmazza.

A $Event rendszer elküldi a változót a folyamatnak a Group-Object parancsmagnak. Group-ObjectA Tulajdonság paraméter használatával adja meg a LevelDisplayName tulajdonságot, és megszámolja az objektumokat LevelDisplayName szerint. Az objektumok olyan szintek szerint vannak csoportosítva, mint a Figyelmeztetés és az Információ. A NoElement paraméter eltávolítja az egyéb tulajdonságokat a kimenetből. A kimenetben a Darabszám oszlop az egyes események teljes számát tartalmazza. A Név oszlop a csoportosított LevelDisplayName nevet tartalmazza.

11. példa: Olyan hibaesemények lekérése, amelyek nevében egy megadott sztring szerepel

Ez a példa a naplónevek vesszővel tagolt sztringét használja. A kimenet a hiba vagy figyelmeztetés szintje és a napló neve szerint van csoportosítva.

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

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. A LogName paraméter egy vesszővel elválasztott sztringet használ a csillag (*) helyettesítő karakterrel a naplónevek megadásához. A rendszer elküldi az objektumokat a folyamatnak a Group-Object parancsmagnak. Group-ObjectA Tulajdonság paraméter használatával csoportosítja az objektumokat LevelDisplayName és LogName szerint. A NoElement paraméter eltávolítja az egyéb tulajdonságokat a kimenetből. A rendszer elküldi a csoportosított objektumokat a folyamatnak a Format-Table parancsmagnak. Format-Table az AutoSize paraméter használatával formázza az oszlopokat. A Darabszám oszlop az egyes események teljes számát tartalmazza. A Név oszlop a csoportosított LevelDisplayName és LogName nevet tartalmazza.

12. példa: Események lekérése archivált eseménynaplóból

Get-WinEvent eseményinformációkat kérhet le a mentett naplófájlokból. Ez a minta a helyi számítógépen tárolt archivált PowerShell-naplót használja.

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

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. Az Elérési út paraméter megadja a könyvtárat és a fájlnevet.

13. példa: Adott számú esemény lekérése archivált eseménynaplóból

Ezek a parancsok adott számú eseményt kapnak egy archivált eseménynaplóból. Get-WinEvent olyan paraméterekkel rendelkezik, amelyek maximális számú eseményt vagy a legrégebbi eseményt képesek lekérni. Ez a minta egy archivált PowerShell-naplót használ, amely a C:\Test\PowerShellCore Operational.evtx fájlban van tárolva.

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

A Get-WinEvent parancsmag naplóadatokat kap a számítógépről. Az Elérési út paraméter megadja a könyvtárat és a fájlnevet. A MaxEvents paraméter 100 rekord megjelenítését határozza meg a legújabbtól a legrégebbiig.

14. példa: Eseménykövetés Windowshoz

A Windows eseménykövetése (ETW) eseményeket ír a naplóba események bekövetkezésekor. Az események a legrégebbi és a legújabb sorrendben vannak tárolva. Az archivált ETW-fájlok például TraceLog.etl fájlként .etl lesznek mentve. Az események abban a sorrendben jelennek meg, amelyben a naplóba vannak írva, ezért a legrégebbi paraméterre van szükség.

Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest |
  Sort-Object -Property TimeCreated -Descending |
    Select-Object -First 100

A Get-WinEvent parancsmag naplóadatokat kap az archivált fájlból. Az Elérési út paraméter megadja a könyvtárat és a fájlnevet. A legrégebbi paraméter az események írási sorrendben történő kimenetére szolgál, a legrégebbiről a legújabbra. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object parancsmagnak Sort-Object , és csökkenő sorrendben rendezi az objektumokat a TimeCreated tulajdonság értéke szerint. A rendszer elküldi az objektumokat a folyamaton a Select-Object 100 legújabb eseményt megjelenítő parancsmagnak.

15. példa: Események lekérése egy eseménykövetési naplóból

Ez a példa bemutatja, hogyan szerezheti be az eseményeket egy eseménykövetési naplófájlból (.etl) és egy archivált Windows PowerShell-naplófájlból (.evtx). Egyetlen parancsban több fájltípust is kombinálhat. Mivel a fájlok azonos típusú .NET-keretrendszer objektumot (EventLogRecord) tartalmaznak, ugyanazokkal a tulajdonságokkal szűrheti őket. A parancshoz a legrégebbi paraméterre van szükség, mert egy .etl fájlból olvas, de a legrégebbi paraméter minden fájlra érvényes.

Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest |
  Where-Object { $_.Id -eq '403' }

A Get-WinEvent parancsmag naplóadatokat kap az archivált fájlokból. Az Elérési út paraméter egy vesszővel tagolt listát használ az egyes fájlkönyvtárak és fájlnevek megadásához. A legrégebbi paraméter az események írási sorrendben történő kimenetére szolgál, a legrégebbiről a legújabbra. A rendszer elküldi az objektumokat a folyamatnak a Where-Object parancsmagnak. Where-Objectegy szkriptblokk használatával megkeresi a 403-at azonosítóeseményeket. A $_ változó a folyamat aktuális objektumát jelöli, az Azonosító pedig az Eseményazonosító tulajdonságot.

16. példa: Eseménynapló eredményeinek szűrése

Ez a példa számos módszert mutat be az események eseménynaplóból való szűrésére és kiválasztására. Ezek a parancsok az elmúlt 24 órában történt eseményeket kapják meg a Windows PowerShell eseménynaplójából. A szűrési módszerek hatékonyabbak, mint a Where-Object parancsmag használata. A rendszer szűrőket alkalmaz az objektumok lekérésekor. Where-Object lekéri az összes objektumot, majd szűrőket alkalmaz az összes objektumra.

# 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

17. példa: Események lekérése az alkalmazásnaplóból a FilterHashtable használatával

Ez a példa a FilterHashtable paramétert használja az események lekéréséhez az alkalmazásnaplóból . A kivonattábla kulcs-érték párokat használ. A FilterHashtable paraméterrel kapcsolatos további információkért lásd: Get-WinEvent lekérdezések létrehozása a FilterHashtable használatával. További információ a kivonattáblákról: about_Hash_Tables.

$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }

A Get-Date parancsmag az AddDays metódust használja egy olyan dátum lekéréséhez, amely két nappal az aktuális dátum előtt van. A dátumobjektum a változóban $Date van tárolva.

A Get-WinEvent parancsmag naplóadatokat kap. A FilterHashtable paraméter a kimenet szűrésére szolgál. A LogName kulcs az alkalmazásnaplóként megadott értéket adja meg. A StartTime kulcs a változóban $Date tárolt értéket használja. Az azonosítókulcs egy 1003-at használó eseményazonosító-értéket használ.

18. példa: Alkalmazáshibák lekérése a FilterHashtable használatával

Ez a példa a FilterHashtable paramétert használja az Internet Explorer elmúlt héten előforduló alkalmazáshibáinak megkereséséhez.

$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{
  Logname='Application'
  ProviderName='Application Error'
  Data='iexplore.exe'
  StartTime=$StartTime
}

A Get-Date parancsmag az AddDays metódussal olyan dátumot kap, amely hét nappal az aktuális dátum előtt van. A dátumobjektum a változóban $StartTime van tárolva.

A Get-WinEvent parancsmag naplóadatokat kap. A FilterHashtable paraméter a kimenet szűrésére szolgál. A LogName kulcs az alkalmazásnaplóként megadott értéket adja meg. A ProviderName kulcs az alkalmazáshiba értéket használja, amely az esemény forrása. Az adatkulcs azt az értéket használja, iexplore.exe A StartTime-kulcs a változóban $StartTime tárolt értéket használja.

19. példa: Alkalmazáshibák szűrése a SuppressHashFilter használatával

A fenti 16. példához hasonlóan ez a példa a FilterHashtable paramétert használja az események lekéréséhez az alkalmazásnaplóból . Azonban hozzáadjuk a SuppressHashFilter kulcsot az információs szintű események kiszűréséhez.

$Date = (Get-Date).AddDays(-2)
$filter = @{
  LogName='Application'
  StartTime=$Date
  SuppressHashFilter=@{Level=4}
}
Get-WinEvent -FilterHashtable $filter

Ebben a példában Get-WinEvent az alkalmazásnapló minden eseményét lekéri az elmúlt két napban, kivéve azokat, amelyek 4. szintű (információ) szintűek .

Paraméterek

-ComputerName

Megadja annak a számítógépnek a nevét, amelyet ez a parancsmag eseményeket kap az eseménynaplókból. Írja be a számítógép NetBIOS-nevét, IP-címét vagy teljes tartománynevét (FQDN). Az alapértelmezett érték a helyi számítógép, a localhost. Ez a paraméter egyszerre csak egy számítógépnevet fogad el.

Ha távoli számítógépekről szeretne eseménynaplókat lekérni, konfigurálja az eseménynapló-szolgáltatás tűzfalportját a távelérés engedélyezéséhez.

Ez a parancsmag nem támaszkodik a PowerShell-újraküldésre. Akkor is használhatja a ComputerName paramétert, ha a számítógép nincs távoli parancsok futtatására konfigurálva.

Type:String
Aliases:Cn
Position:Named
Default value:Local computer
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

A művelet végrehajtásához engedéllyel rendelkező felhasználói fiókot ad meg. Az alapértelmezett érték az aktuális felhasználó.

Írjon be egy felhasználónevet, például User01 vagy Domain01\User01. Vagy írjon be egy PSCredential objektumot, például a parancsmag által Get-Credential létrehozott objektumot. Ha felhasználónevet ír be, a rendszer jelszót kér. Ha csak a paraméter nevét írja be, a rendszer felhasználónevet és jelszót is kér.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FilterHashtable

Egy kivonattábla formátumú lekérdezést ad meg egy vagy több eseménynapló eseményeinek kiválasztásához. A lekérdezés tartalmaz egy kivonattáblát egy vagy több kulcs/érték párral.

A kivonattábla-lekérdezések a következő szabályokkal rendelkeznek:

  • A kulcsok és értékek nem érzékenyek a kis- és nagybetűkre.
  • A helyettesítő karakterek csak a LogName és ProviderName kulcsokhoz társított értékekben érvényesek.
  • Minden kulcs csak egyszer szerepelhet az egyes kivonattáblákban.
  • Az Elérési út érték a naplófájlok .etl.evt.evtx elérési útját adja meg.
  • A LogName, path és ProviderName kulcsok ugyanabban a lekérdezésben használhatók.
  • A UserID-kulcs érvényes biztonsági azonosítót (SID) vagy tartományfióknevet vehet fel, amely egy érvényes System.Security.Principal.NTAccount objektum létrehozásához használható.
  • Az Adatérték egy meg nem nevezett mezőben veszi át az eseményadatokat. Például a klasszikus eseménynaplók eseményei.
  • <named-data> kulcs egy elnevezett eseményadatmezőt jelöl.

Ha Get-WinEvent egy kulcs/érték pár nem értelmezhető, a kulcsot az esemény eseményadatainak kis- és nagybetűket megkülönböztető neveként értelmezi.

Az érvényes Get-WinEventkulcs/érték párok a következők:

  • LogName=<String[]>
  • ProviderName=<String[]>
  • Elérési út=<String[]>
  • Kulcsszavak=<Long[]>
  • Azonosító=<Int32[]>
  • Szinten=<Int32[]>
  • StartTime=<DateTime>
  • EndTime=<DateTime>
  • UserID=<SID>
  • Adatok=<String[]>
  • <named-data>=<String[]>
  • SuppressHashFilter=<Hashtable>
Type:Hashtable[]
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilterXml

Egy strukturált XML-lekérdezést ad meg, amelyet ez a parancsmag kiválaszt egy vagy több eseménynaplóból.

Érvényes XML-lekérdezés létrehozásához használja az Egyéni nézet létrehozása és az Aktuális naplók szűrése funkciót a Windows Eseménynapló. A párbeszédpanel elemeivel hozzon létre egy lekérdezést, majd kattintson az XML fülre a lekérdezés XML formátumban való megtekintéséhez. Az XML-fájlt az XML lapról a FilterXml paraméter értékébe másolhatja. A Eseménynapló funkcióiról további információt a Eseménynapló súgójában talál.

XML-lekérdezés használatával hozzon létre egy összetett lekérdezést, amely több XPath-utasítást tartalmaz. Az XML-formátum lehetővé teszi egy olyan XML-elem letiltására is, amely kizárja az eseményeket a lekérdezésből. Az eseménynapló-lekérdezések XML-sémájáról további információt a Lekérdezési séma és az Eseménykijelölés XML-esemény lekérdezések szakaszában talál.

A FilterHashtable paraméterrel elfojtott elemet is létrehozhat.

Type:XmlDocument
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-FilterXPath

Egy XPath-lekérdezést ad meg, amelyet ez a parancsmag kiválaszt egy vagy több naplóból.

Az XPath nyelvről további információt az XPath-referencia és az Eseménykijelölés kiválasztási szűrők szakaszában talál.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

Az egyéb eseménynaplók mellett hibakeresési és elemzési naplókat is lekér. Ha a névparaméter értéke helyettesítő karaktereket tartalmaz, a Force paraméter szükséges a hibakeresési vagy elemzési napló lekéréséhez.

A parancsmag alapértelmezés szerint kizárja ezeket a naplókat, Get-WinEvent kivéve, ha megadja a hibakeresési vagy elemzési napló teljes nevét.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ListLog

Megadja az eseménynaplókat. Írja be az eseménynapló nevét egy vesszővel tagolt listában. Helyettesítő karakterek használata engedélyezett. Az összes napló lekéréséhez használja a csillag (*) helyettesítő karaktert.

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

-ListProvider

Megadja a parancsmag által lekért eseménynapló-szolgáltatókat. Az eseménynapló-szolgáltató olyan program vagy szolgáltatás, amely eseményeket ír az eseménynaplóba.

Adja meg a szolgáltatóneveket egy vesszővel tagolt listában. Helyettesítő karakterek használata engedélyezett. Az összes eseménynapló szolgáltatójának lekéréséhez használja a csillag (*) helyettesítő karaktert.

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

-LogName

Megadja azokat az eseménynaplókat, amelyekből a parancsmag eseményeket kap. Írja be az eseménynapló nevét egy vesszővel tagolt listában. Helyettesítő karakterek használata engedélyezett. A naplóneveket a Get-WinEvent parancsmagra is beszűkítheti.

Feljegyzés

A PowerShell nem korlátozza a kérhető naplók mennyiségét. A Get-WinEvent parancsmag azonban lekérdezi a Windows API-t, amelynek korlátja 256. Ez megnehezítheti az összes napló egyszerre történő szűrését. Ezt úgy teheti meg, hogy egy hurkot foreach használva végighalad az egyes naplókon az alábbi módon: 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

A visszaadott események maximális számát adja meg. Adjon meg egy egész számot( például 100). Az alapértelmezett beállítás a naplókban vagy fájlokban szereplő összes esemény visszaadása.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Oldest

Jelezze, hogy ez a parancsmag a legrégebbi sorrendben kapja meg az eseményeket. Alapértelmezés szerint az események a legújabb első sorrendben jelennek meg.

Ez a paraméter szükséges az események lekéréséhez a fájlokból .etl és .evt fájlokból, valamint a hibakeresési és elemzési naplókból. Ezekben a fájlokban az események a legrégebbi első sorrendben vannak rögzítve, és az események csak a legrégebbi első sorrendben küldhetők vissza.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Megadja azoknak az eseménynapló-fájloknak az elérési útját, amelyekből a parancsmag eseményeket kap. Írja be a naplófájlok elérési útját egy vesszővel tagolt listában, vagy használjon helyettesítő karaktereket a fájl elérésiút-mintáinak létrehozásához.

Get-WinEventtámogatja a , .evtxés .etl a .evtfájlnévkiterjesztéssel rendelkező fájlokat. Ugyanabban a parancsban különböző fájlokból és fájltípusokból származó eseményeket is felvehet.

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

-ProviderName

Sztringtömbként megadja azokat az eseménynapló-szolgáltatókat, amelyekből ez a parancsmag eseményeket kap. Írja be a szolgáltatóneveket egy vesszővel tagolt listában, vagy használjon helyettesítő karaktereket a szolgáltatónévminták létrehozásához.

Az eseménynapló-szolgáltató olyan program vagy szolgáltatás, amely eseményeket ír az eseménynaplóba. Ez nem PowerShell-szolgáltató.

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

Bevitelek

String

Ehhez a parancsmaghoz logName (sztring) csövezhető.

XmlDocument

A FilterXML-lekérdezéseket erre a parancsmagra csövezheti.

Hashtable

Erre a parancsmagra egy FilterHashtable-lekérdezést is be lehet csövezni.

Kimenetek

EventLogConfiguration

A ListLog paraméterrel ez a parancsmag EventLogConfiguration objektumokat ad vissza.

EventLogRecord

Ez a parancsmag alapértelmezés szerint EventLogRecord objektumokat ad vissza.

ProviderMetadata

A ListProvider paraméterrel ez a parancsmag ProviderMetadata objektumokat ad vissza.

Jegyzetek

Get-WinEvent A parancsmagot a Windows Vista és a Get-EventLog Windows újabb verzióit futtató számítógépeken való helyettesítésére tervezték. Get-EventLog eseményeket csak a klasszikus eseménynaplókban kap meg. Get-EventLog a visszafelé kompatibilitás érdekében megmarad.

A Get-WinEvent windowsos előtelepítési környezetben (Windows PE) a parancsmagok és Get-EventLog a parancsmagok nem támogatottak.