Megosztás a következőn keresztül:


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

GetLogSet (Alapértelmezett)

Get-WinEvent
    [[-LogName] <String[]>]
    [-MaxEvents <Int64>]
    [-ComputerName <String>]
    [-Credential <PSCredential>]
    [-FilterXPath <String>]
    [-Force]
    [-Oldest]
    [<CommonParameters>]

ListLogSet

Get-WinEvent
    [-ListLog] <String[]>
    [-ComputerName <String>]
    [-Credential <PSCredential>]
    [-Force]
    [<CommonParameters>]

ListProviderSet

Get-WinEvent
    [-ListProvider] <String[]>
    [-ComputerName <String>]
    [-Credential <PSCredential>]
    [<CommonParameters>]

GetProviderSet

Get-WinEvent
    [-ProviderName] <String[]>
    [-MaxEvents <Int64>]
    [-ComputerName <String>]
    [-Credential <PSCredential>]
    [-FilterXPath <String>]
    [-Force]
    [-Oldest]
    [<CommonParameters>]

FileSet

Get-WinEvent
    [-Path] <String[]>
    [-MaxEvents <Int64>]
    [-Credential <PSCredential>]
    [-FilterXPath <String>]
    [-Oldest]
    [<CommonParameters>]

HashQuerySet

Get-WinEvent
    [-FilterHashtable] <Hashtable[]>
    [-MaxEvents <Int64>]
    [-ComputerName <String>]
    [-Credential <PSCredential>]
    [-Force]
    [-Oldest]
    [<CommonParameters>]

XmlQuerySet

Get-WinEvent
    [-FilterXml] <XmlDocument>
    [-MaxEvents <Int64>]
    [-ComputerName <String>]
    [-Credential <PSCredential>]
    [-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 is, például a rendszer és alkalmazás naplóit. 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 CTRL+C. 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ésekkel, strukturált XML-lekérdezésekkel és kivonattáblázat-lekérdezésekkel.

Ha nem rendszergazdaként futtatja a PowerShellt, olyan hibaüzenetek jelenhetnek meg, amelyek nem kérhetők le a naplókró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 abban a sorrendben vannak felsorolva, hogy Get-WinEvent kapják meg őket. 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 null értékű, 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ő karaktert használja az egyes naplók adatainak megjelenítéséhez.

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

Ez a parancs egy EventLogConfiguration objektumot kap, amely a klasszikus beállítási naplót jelöli. 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 beállítási naplót. A rendszer elküldi az objektumot a folyamaton a Format-List parancsmagnak. Format-List a 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 egy napló RecordCount null vagy nulla. A példa a $_ változót használja. További információért tekintse meg az *about_Automatic_Variables* témakört a éscímkék alatt.

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ő karaktert használja az egyes naplók adatainak megjelenítéséhez. A ComputerName paraméter a helyi számítógép naplóinak lekérését adja meg, localhost. A rendszer elküldi az objektumokat a folyamaton a Where-Object parancsmagnak. Where-Object $_.RecordCount használatával csak adatokat tartalmazó naplókat ad vissza. $_ egy változó, amely a folyamat aktuális objektumát jelöli. 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 ciklus használatával dolgozza fel az egyes kiszolgálókat, ($Server in $S). A kapcsos zárójelek szkriptblokkja ({ }) futtatja a Get-WinEvent parancsot. A ListLog paraméter határozza meg a alkalmazásnaplót. A ComputerName paraméter a $Server változót használja az egyes kiszolgálók naplóadatainak lekéréséhez.

A rendszer elküldi az objektumokat a folyamaton a Select-Object parancsmagnak. Select-Object lekéri LogMode, MaximumSizeInBytes, RecordCount, LogNametulajdonságait, és számított kifejezéssel jeleníti meg a ComputerName 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 Automatikus méretezés 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ő karaktert használja az egyes szolgáltatók adatainak megjelenítéséhez. A kimenetben a Név a szolgáltató, LogLinks a szolgáltató által írt napló.

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ál a napló objektumainak lekéréséhez. ProviderNames az objektum tulajdonsága, és megjeleníti azokat a szolgáltatókat, amelyek az alkalmazás naplóba írnak.

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 Házirend a szolgáltató nevének bármely pontján.

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 határozza meg a szolgáltatót, a Microsoft-Windows-GroupPolicy. A kifejezés zárójelekbe van csomagolva, és az Events tulajdonságot használja az objektumok lekéréséhez. A rendszer elküldi az objektumokat a folyamaton a Format-Table parancsmagnak. megjeleníti az eseményobjektumok azonosítóját és Leírás.

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 szintszerint 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 parancsmag a LogName paramétert használja a Windows PowerShell eseménynaplójának megadásához. 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 változót a rendszer elküldi 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 csoportosított objektumokat a rendszer a folyamaton keresztül küldi el a Sort-Object parancsmagnak. Sort-Object az Tulajdonság paraméter használatával rendezi az objektumokat Darabszámszerint. A Csökkenő paraméter szám szerint jeleníti meg a kimenetet a legmagasabbtól a legalacsonyabbig. A kimenetben a Darabszám oszlop tartalmazza az egyes események teljes számát. A Név oszlop a csoportosított eseményazonosító számokat tartalmazza.

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

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 folyamaton a Group-Object parancsmagnak. Group-Object a Tulajdonság paraméter használatával csoportosítja az objektumokat LevelDisplayName és LogNameszerint. A NoElement paraméter eltávolít más tulajdonságokat a kimenetből. A csoportosított objektumokat a rendszer a folyamaton keresztül küldi el a Format-Table parancsmagnak. Format-Table az Automatikus méretezés paraméter használatával formázza az oszlopokat. A Darabszám oszlop tartalmazza az egyes események teljes számát. A Név oszlop a LevelDisplayName és LogNamecsoportosított tartalmazza.

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

Get-WinEvent lekérheti az eseményadatokat 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. A Elérési út paraméter határozza meg 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ényeket képesek lekérni. Ez a minta egy archivált PowerShell-naplót használ, amelyet C:\Test\PowerShellCore Operational.evtxtárol.

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 .etl, például TraceLog.etl. Az események abban a sorrendben jelennek meg, amelyben a naplóba vannak írva, ezért a legrégebbi paraméter szükséges.

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. A Elérési út paraméter határozza meg 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égebbi és a legújabb között. A rendszer elküldi az objektumokat a folyamatnak a Sort-Object parancsmagnak, Sort-Object az objektumokat csökkenő sorrendbe rendezi a TimeCreated tulajdonság értéke alapján. A rendszer elküldi az objektumokat a folyamaton a 100 legújabb eseményt megjelenítő Select-Object 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 ugyanolyan típusú .NET-keretrendszer objektumot tartalmaznak, EventLogRecord, 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. A Elérési út paraméter 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égebbi és a legújabb között. A rendszer elküldi az objektumokat a folyamaton 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, Azonosító pedig az Eseményazonosító tulajdonság.

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) &amp;lt;= 86400000]]]</Select>
  </Query>
</QueryList>
'@
Get-WinEvent -FilterXML $xmlQuery

# Using the FilterXPath parameter:
$XPath = '*[System[Level=3 and TimeCreated[timediff(@SystemTime) &amp;lt;= 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 a Alkalmazás napló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 FilterHashtablehasználatával. További információkért a kivonattáblákról lásd: 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 $Date változóban 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ás naplójaként adja meg az értéket. A StartTime kulcs a $Date változóban tárolt értéket használja. Az azonosító kulcs egy eseményazonosító-értéket használ, 1003.

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ódust használja egy olyan dátum lekéréséhez, amely hét nappal az aktuális dátum előtt van. A dátumobjektum a $StartTime változóban 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ás naplójaként adja meg az értéket. A ProviderName kulcs az esemény Forrásalkalmazáshibaértékét használja. Az Adat kulcs a StartTime kulcs iexplore.exe az $StartTime változóban 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, 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. A ComputerName paramétert akkor is használhatja, ha a számítógép nincs távoli parancsok futtatására konfigurálva.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:Local computer
Támogatja a helyettesítő karaktereket:False
DontShow:False
Aliasok:Cn

Paraméterkészletek

GetLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ListLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ListProviderSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
GetProviderSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
HashQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
XmlQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 adjon meg egy PSCredential objektumot, például a Get-Credential parancsmag által 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.

Paramétertulajdonságok

Típus:PSCredential
Alapértelmezett érték:Current user
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

(All)
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 egy vagy több kulcs/érték párral rendelkező kivonattáblát tartalmaz.

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.
  • A Elérési út érték a .etl, .evtés .evtx naplófájlok elérési útját veszi át.
  • A LogName, Elérési útés ProviderName kulcsok használhatók ugyanabban a lekérdezésben.
  • A UserID kulcs érvényes biztonsági azonosítót (SID) vagy egy tartományfióknevet vehet fel, amely egy érvényes System.Security.Principal.NTAccount objektum létrehozásához használható.
  • A Adat érték egy névtelen 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 nem tudja értelmezni kulcs/érték párját, 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:

  • Naplónév=<String[]>
  • Szolgáltatónév=<String[]>
  • elérési út=<String[]>
  • kulcsszavak=<Long[]>
  • azonosító=<Int32[]>
  • szint=<Int32[]>
  • Kezdési idő=<DateTime>
  • Végidő=<DateTime>
  • Felhasználói azonosító=<SID>
  • adat=<String[]>
  • <named-data>=<String[]>
  • SuppressHashFilter=<Hashtable>

Paramétertulajdonságok

Típus:

Hashtable[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

HashQuerySet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 Szűrő aktuális napló funkcióit a Windows Eseménynaplóban. 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. Az Eseménynapló funkcióival kapcsolatos további információkért tekintse meg az Eseménynapló súgóját.

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 AZ XML- elem letiltása, 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.

Paramétertulajdonságok

Típus:XmlDocument
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

XmlQuerySet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-FilterXPath

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

További információ az XPath nyelvről: XPath-referencia és Eseménykijelölésikijelölési szűrők szakasza.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

GetLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
GetProviderSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
FileSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Force

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

Alapértelmezés szerint a Get-WinEvent parancsmag kizárja ezeket a naplókat, hacsak nem adja meg a hibakeresési vagy elemzési napló teljes nevét.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

GetLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ListLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
GetProviderSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
HashQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

ListLogSet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

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

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

ListProviderSet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-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 átirányíthatja.

Megjegyzé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 }

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

GetLogSet
Position:0
Kötelező:False
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

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

Paramétertulajdonságok

Típus:Int64
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

GetLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
GetProviderSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
FileSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
HashQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
XmlQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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 az események .etl és .evt fájlokból, valamint hibakeresési és elemzési naplókból való lekéréséhez szükséges. 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.

Paramétertulajdonságok

Típus:SwitchParameter
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

GetLogSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
GetProviderSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
FileSet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
HashQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
XmlQuerySet
Position:Named
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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-WinEvent támogatja a .evt, .evtxés .etl kiterjesztésű fájlokat. Ugyanabban a parancsban különböző fájlokból és fájltípusokból származó eseményeket is felvehet.

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False
Aliasok:PSPath

Paraméterkészletek

FileSet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

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

Paramétertulajdonságok

Típus:

String[]

Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:True
DontShow:False

Paraméterkészletek

GetProviderSet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:True
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

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 Windows Vista rendszert és a Windows újabb verzióit futtató számítógépeken a Get-EventLog parancsmag cseréjére szolgál. Get-EventLog csak klasszikus eseménynaplókban kapja le az eseményeket. Get-EventLog a visszamenőleges kompatibilitás érdekében megmarad.

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