Get-WinEvent
從本機和遠端電腦上的事件記錄檔和事件追蹤記錄檔取得事件。
語法
Get-WinEvent
[[-LogName] <string[]>]
[-MaxEvents <long>]
[-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 <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Force]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-Path] <string[]>
[-MaxEvents <long>]
[-Credential <pscredential>]
[-FilterXPath <string>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-FilterXml] <xml>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-Oldest]
[<CommonParameters>]
Get-WinEvent
[-FilterHashtable] <hashtable[]>
[-MaxEvents <long>]
[-ComputerName <string>]
[-Credential <pscredential>]
[-Force]
[-Oldest]
[<CommonParameters>]
Description
Get-WinEvent
Cmdlet 會從事件記錄檔取得事件,包括傳統記錄檔,例如 系統 和 應用程式 記錄。 Cmdlet 會從 Windows Vista 中引進的 Windows 事件記錄技術所產生的事件記錄檔取得數據。 此外,Windows 事件追蹤所產生的記錄檔事件。 根據預設,Get-WinEvent
會依照最新到最舊的順序傳回事件資訊。
Get-WinEvent
列出事件記錄檔和事件記錄提供者。 若要中斷命令,請按 CTRL+C。 您可以從選取的記錄或選取的事件提供者所產生的記錄中取得事件。 此外,您可以在單一命令中結合來自多個來源的事件。
Get-WinEvent
可讓您使用 XPath 查詢、結構化 XML 查詢和哈希表查詢來篩選事件。
如果您不是以系統管理員身分執行 PowerShell,您可能會看到無法擷取記錄相關信息的錯誤訊息。
範例
範例 1:從本機計算機取得所有記錄
此命令會取得本機電腦上的所有事件記錄檔。 記錄會依 Get-WinEvent
取得記錄的順序列出。 系統會先擷取傳統記錄,然後擷取新的 Windows 事件記錄。
記錄的 RecordCount 可以是 null,也就是空白或零。
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
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
ListLog 參數會使用星號 (*
) 通配符來顯示每個記錄檔的相關信息。
範例 2:取得傳統安裝記錄檔
此命令會取得代表傳統 安裝程式 記錄 EventLogConfiguration 物件。 物件包含記錄的相關信息,例如檔案大小、提供者、檔案路徑,以及是否啟用記錄檔。
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 :
Get-WinEvent
Cmdlet 會使用 ListLog 參數來指定 安裝程式 記錄檔。 物件會向下傳送至 Format-List
Cmdlet。
Format-List
使用 Property 參數搭配星號 (*
) 通配符來顯示每個屬性。
範例 3:從伺服器取得事件記錄
此命令只會在包含事件的本機計算機上取得事件記錄檔。 記錄 RecordCount 可以是 null 或零。 此範例會使用 $_
變數。 如需詳細資訊,請參閱 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
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
ListLog 參數會使用星號 (*
) 通配符來顯示每個記錄檔的相關信息。
ComputerName 參數會指定從本機電腦取得記錄,localhost。 物件會向下傳送至 Where-Object
Cmdlet。
Where-Object
會使用 $_.RecordCount
只傳回包含數據的記錄。
$_
是代表管線中目前物件的變數。
RecordCount 是具有非 Null 值的物件屬性。
範例 4:從多部伺服器取得事件記錄
這個範例會取得對象,這些物件表示三部計算機上的 Application 事件記錄檔:Server01、Server02 和 Server03。 使用 ForEach 關鍵詞,因為 ComputerName 參數只接受一個值。 如需詳細資訊,請參閱 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
變數 $S
會儲存三個伺服器的名稱:Server01、Server02和 Server03。
ForEach 語句會使用循環來處理每部伺服器,($Server in $S)
。 大括弧 ({ }
) 中的腳本區塊會執行 Get-WinEvent
命令。 $Server
從每部伺服器取得記錄資訊。
物件會向下傳送至 Select-Object
Cmdlet。 Format-Table
Cmdlet,以在 PowerShell 控制台中顯示輸出。
AutoSize 參數會格式化輸出以符合畫面。
範例 5:取得事件記錄提供者和記錄檔名稱
此命令會取得事件記錄提供者及其寫入的記錄。
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
ListProvider 參數會使用星號 (*
) 通配符來顯示每個提供者的相關信息。 在輸出中,Name 是提供者,LogLinks 是提供者寫入的記錄。
範例 6:取得寫入特定記錄檔的所有事件記錄提供者
此命令會取得寫入 應用程式 記錄檔的所有提供者。
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
ListLog 參數會使用 Application 來取得該記錄的物件。
範例 7:取得包含特定字串的事件記錄提供者名稱
此命令會取得事件記錄檔提供者,其中包含提供者名稱中包含特定字串的名稱。
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 : {}
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
ListProvider 參數會使用星號 (*
) 通配符,在提供者名稱內的任何位置尋找 原則。
範例 8:取得事件提供者產生的事件標識碼
此命令會列出事件標識符,Microsoft-Windows-GroupPolicy 事件提供者所產生的事件標識符,以及事件描述。
(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.
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
ListProvider 參數會指定提供者,Microsoft-Windows-GroupPolicy。 表達式會包裝在括弧中,並使用 Events 屬性來取得物件。 物件會向下傳送至 Format-Table
Cmdlet。
Format-Table
會顯示事件物件的 識別子 和 描述。
範例 9:從事件物件屬性取得記錄資訊
此範例示範如何使用事件對象屬性來取得記錄檔內容的相關信息。 事件物件會儲存在變數中,然後依 事件標識符 和 層級分組和計算。
PS> $Event = Get-WinEvent -LogName 'Windows PowerShell'
PS> $Event.Count
195
PS> $Event | Group-Object -Property Id -NoElement | Sort-Object -Property Count -Descending
Count Name
----- ----
147 600
22 400
21 601
3 403
2 103
PS> $Event | Group-Object -Property LevelDisplayName -NoElement
Count Name
----- ----
2 Warning
193 Information
$Event
變數中。
$Event.Count
會使用 $Event
變數的 Count 屬性來顯示記錄的事件總數。
$Event
變數會向下傳送至 Group-Object
Cmdlet。
Group-Object
會使用 Property 參數來指定 Id 屬性,並依 Id來計算物件。NoElement 參數會從物件輸出中移除其他屬性。 群組物件會從管線向下傳送至 Sort-Object
Cmdlet。
Sort-Object
會使用 Property 參數,依 count 排序物件。
遞減 參數會依計數顯示輸出,從最高到最低。 在輸出中,Count 數據行包含每個事件的總數。
Name 資料列包含群組 識別子 數位。
$Event
變數會向下傳送至 Group-Object
Cmdlet。
範例 10:取得名稱中有指定字串的錯誤事件
此範例會使用以逗號分隔的記錄名稱字串。 輸出會依錯誤或警告和記錄檔名稱等層級分組。
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
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
LogName 參數會使用逗號分隔字串搭配星號 (*
) 通配符來指定記錄檔名稱。 物件會向下傳送至 Group-Object
Cmdlet。
Group-Object
會使用 Property 參數,LevelDisplayName 和 LogName來群組物件。
NoElement 參數會從輸出中移除其他屬性。 群組物件會從管線向下傳送至 Format-Table
Cmdlet。
Format-Table
使用 AutoSize 參數來格式化數據行。
Count 數據行包含每個事件的總數。
Name 資料列包含群組 LevelDisplayName 和 LogName。
範例 11:從封存的事件記錄檔取得事件
Get-WinEvent
可以從儲存的記錄檔取得事件資訊。 此範例會使用儲存在本機計算機上的封存 PowerShell 記錄檔。
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...
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
Path 參數會指定目錄和檔名。
範例 12:從封存的事件記錄檔取得特定數目的事件
這些命令會從封存的事件記錄檔取得特定數目的事件。
Get-WinEvent
具有可取得事件數目上限或最舊事件的參數。 此範例會使用儲存在 C:\Test\PowerShellCore Operational.evtx
PS> 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
Get-WinEvent
Cmdlet 會從電腦取得記錄資訊。
Path 參數會指定目錄和檔名。
MaxEvents 參數會指定顯示 100 筆記錄,從最新到最舊。
範例 13:Windows 的事件追蹤
Windows 事件追蹤 (ETW) 會將事件寫入記錄檔中,因為事件發生。 事件會以最舊到最新的順序儲存。 封存的 ETW 檔案會儲存為 .etl
,例如 TraceLog.etl。
事件會依照寫入記錄的順序列出,因此需要 最舊的 參數。
PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl' -Oldest | Sort-Object -Property TimeCreated -Descending | Select-Object -First 100
Get-WinEvent
Cmdlet 會從封存盤案取得記錄資訊。
Path 參數會指定目錄和檔名。
最舊 參數是用來依寫入事件的順序輸出事件,最舊到最新。 物件會從管線向下傳送至 Sort-Object
Cmdlet,Sort-Object
依 timeCreated 屬性的值,以遞減順序排序物件。 物件會向下傳送至顯示 100 個最新事件的 Select-Object
Cmdlet。
範例 14:從事件追蹤記錄檔取得事件
此範例示範如何從事件追蹤記錄檔 (.etl
) 和封存的 Windows PowerShell 記錄檔 (.evtx
) 取得事件。 您可以在單一命令中結合多個檔案類型。
因為檔案包含相同類型的 .NET Framework 物件,EventLogRecord,因此您可以使用相同的屬性來篩選它們。 此命令需要 Oldest 參數,因為它會從 .etl
檔案讀取,但 最舊 參數會套用至每個檔案。
PS> Get-WinEvent -Path 'C:\Tracing\TraceLog.etl', 'C:\Test\Windows PowerShell.evtx' -Oldest | Where-Object { $_.Id -eq '403' }
Get-WinEvent
Cmdlet 會從封存的檔案取得記錄資訊。
Path 參數會使用逗號分隔清單來指定每個檔案目錄和檔名。
最舊 參數是用來依寫入事件的順序輸出事件,最舊到最新。 物件會向下傳送至 Where-Object
Cmdlet。 $_
變數代表管線中的目前物件,而 標識碼 是事件標識符屬性。
範例 15:篩選事件記錄檔結果
此範例顯示各種方法,可從事件記錄檔中篩選和選取事件。 所有這些命令都會從 Windows PowerShell 事件記錄檔取得過去 24 小時內發生的事件。
篩選方法比使用 Where-Object
Cmdlet 更有效率。 篩選條件會在擷取物件時套用。
Where-Object
擷取所有物件,然後將篩選套用至所有物件。
# Using the Where-Object cmdlet:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -LogName 'Windows PowerShell' | Where-Object { $_.TimeCreated -ge $Yesterday }
# Using the FilterHashtable parameter:
PS> $Yesterday = (Get-Date) - (New-TimeSpan -Day 1)
PS> Get-WinEvent -FilterHashtable @{ LogName='Windows PowerShell'; Level=3; StartTime=$Yesterday }
# Using the FilterXML parameter:
PS> Get-WinEvent -FilterXML "<QueryList><Query><Select Path='Windows PowerShell'>*[System[Level=3 and TimeCreated[timediff(@SystemTime)<= 86400000]]]</Select></Query></QueryList>"
# Using the FilterXPath parameter:
PS> Get-WinEvent -LogName 'Windows PowerShell' -FilterXPath "*[System[Level=3 and TimeCreated[timediff(@SystemTime) <= 86400000]]]"
範例 16:使用 FilterHashtable 從應用程式記錄檔取得事件
這個範例會使用 FilterHashtable 參數,從 Application 記錄檔取得事件。 哈希表使用 索引鍵/值 組。 如需 FilterHashtable 參數的詳細資訊,請參閱 使用 FilterHashtable建立 Get-WinEvent 查詢。 如需哈希表的詳細資訊,請參閱 about_Hash_Tables。
$Date = (Get-Date).AddDays(-2)
Get-WinEvent -FilterHashtable @{ LogName='Application'; StartTime=$Date; Id='1003' }
Get-Date
Cmdlet 會使用 AddDays 方法來取得目前日期前兩天的日期。 date 物件會儲存在 $Date
變數中。
Get-WinEvent
Cmdlet 會取得記錄資訊。
FilterHashtable 參數可用來篩選輸出。
LogName 機碼會將值指定為 Application 記錄。
StartTime 索引鍵會使用儲存在 $Date
變數中的值。
識別碼 索引鍵會使用事件識別碼值,1003。
範例 17:使用 FilterHashtable 來取得應用程式錯誤
此範例會使用 FilterHashtable 參數來尋找上周發生的 Internet Explorer 應用程式錯誤。
$StartTime = (Get-Date).AddDays(-7)
Get-WinEvent -FilterHashtable @{ Logname='Application'; ProviderName='Application Error'; Data='iexplore.exe'; StartTime=$StartTime }
Get-Date
Cmdlet 會使用 AddDays 方法來取得目前日期前七天的日期。 date 物件會儲存在 $StartTime
變數中。
Get-WinEvent
Cmdlet 會取得記錄資訊。
FilterHashtable 參數可用來篩選輸出。
LogName 機碼會將值指定為 Application 記錄。
ProviderName 索引鍵會使用值,Application Error,這是事件的 Source。
Data 索引鍵會使用 iexplore.exeStartTime 索引鍵使用儲存在 $StartTime
變數中的值。
參數
-ComputerName
指定此 Cmdlet 從事件記錄檔取得事件的電腦名稱。 輸入電腦的 NetBIOS 名稱、因特網通訊協定 (IP) 位址或完整功能變數名稱 (FQDN)。 預設值為本機電腦,localhost。 此參數一次只接受一部計算機名稱。
若要從遠端電腦取得事件記錄檔,請設定事件記錄服務的防火牆埠以允許遠端訪問。
此 Cmdlet 不依賴 PowerShell 遠端功能。 即使您的電腦未設定為執行遠端命令,您也可以使用 ComputerName 參數。
類型: | String |
別名: | Cn |
Position: | Named |
預設值: | Local computer |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Credential
指定具有執行此動作許可權的用戶帳戶。 預設值為目前的使用者。
輸入使用者名稱,例如 User01 或 Domain01\User01。 或者,輸入 PSCredential 物件,例如 Get-Credential
Cmdlet 所產生的物件。 如果您輸入使用者名稱,系統會提示您輸入密碼。 如果您只輸入參數名稱,系統會提示您輸入使用者名稱和密碼。
類型: | PSCredential |
Position: | Named |
預設值: | Current user |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-FilterHashtable
指定哈希表格式的查詢,以從一或多個事件記錄檔中選取事件。 查詢包含一或多個 索引鍵/值 組的哈希表。
哈希表查詢具有下列規則:
- 索引鍵和值不區分大小寫。
- 通配符只有在與logName 和 ProviderName 索引鍵相關聯的值中才有效。
- 每個索引鍵只能在每個哈希表中列出一次。
-
Path 值會採用路徑
.etl
、.evt
和.evtx
記錄檔。 - LogName、Path和 ProviderName 索引鍵可以在相同的查詢中使用。
- UserID 金鑰可以採用有效的安全性識別碼 (SID) 或可用來建構有效 System.Security.Principal.NTAccount 物件的功能變數名稱。
- Data 值會採用未命名字段中的事件數據。 例如,傳統事件記錄檔中的事件。
-
<named-data>
索引鍵代表具名事件數據欄位。
當 Get-WinEvent
無法解譯 索引鍵/值 組時,它會將索引鍵解譯為事件中事件數據的區分大小寫名稱。
有效的索引鍵/值 組
-
LogName=
<String[]>
-
ProviderName=
<String[]>
-
路徑=
<String[]>
-
關鍵詞=
<Long[]>
-
識別碼=
<Int32[]>
-
層級=
<Int32[]>
-
StartTime=
<DateTime>
-
EndTime=
<DateTime>
-
UserID=
<SID>
-
數據=
<String[]>
<named-data>
=<String[]>
類型: | Hashtable[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-FilterXml
指定這個 Cmdlet 從一或多個事件記錄檔中選取事件的結構化 XML 查詢。
若要產生有效的 XML 查詢,請使用 在 Windows 事件查看器中建立自定義檢視 和 篩選目前記錄檔 功能。 使用對話框中的專案來建立查詢,然後按兩下 [XML] 索引標籤以 XML 格式檢視查詢。 您可以從 [XML] 索引標籤將 XML 複製到 FilterXml 參數的值。 如需事件查看器功能的詳細資訊,請參閱事件查看器說明。
使用 XML 查詢來建立包含數個 XPath 語句的複雜查詢。 XML 格式也可讓您使用 隱藏 XML 專案,從查詢中排除事件。 如需事件記錄檔查詢 XML 架構的詳細資訊,請參閱 MSDN 連結庫中 事件選取 的 查詢架構 和 XML 事件查詢一節。
類型: | XmlDocument |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-FilterXPath
指定此 Cmdlet 從一或多個記錄中選取事件的 XPath 查詢。
如需 XPath 語言的詳細資訊,請參閱 MSDN 連結庫中 事件選取 的 XPath 參考 和選取範圍篩選一節。
類型: | String |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Force
除了其他事件記錄之外,取得偵錯和分析記錄。 當 name 參數的值包含通配符時,需要 Force 參數,才能取得偵錯或分析記錄。
根據預設,除非您指定偵錯或分析記錄的完整名稱,否則 Get-WinEvent
Cmdlet 會排除這些記錄。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-ListLog
指定事件記錄檔。 在逗號分隔清單中輸入事件記錄檔名稱。 允許通配符。 若要取得所有記錄,請使用星號 (*
) 通配符。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | True |
-ListProvider
指定這個 Cmdlet 取得的事件記錄提供者。 事件記錄提供者是將事件寫入事件記錄檔的程式或服務。
在逗號分隔清單中輸入提供者名稱。 允許通配符。 若要取得電腦上所有事件記錄檔的提供者,請使用星號 (*
) 通配符。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | True |
-LogName
指定此 Cmdlet 從中取得事件的事件記錄檔。 在逗號分隔清單中輸入事件記錄檔名稱。 允許通配符。 您也可以使用管線將記錄名稱傳送至 Get-WinEvent
Cmdlet。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | False |
接受管線輸入: | True |
接受萬用字元: | True |
-MaxEvents
指定傳回的事件數目上限。 輸入整數,例如 100。 預設值是傳回記錄或檔案中的所有事件。
類型: | Int64 |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Oldest
指出這個 Cmdlet 會以最舊的順序取得事件。 根據預設,事件會以最新的第一個順序傳回。
需要此參數,才能從 .etl
和 .evt
檔案,以及從偵錯和分析記錄取得事件。 在這些檔案中,事件會以最舊的順序記錄,而且事件只能以最舊的順序傳回。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Path
指定此 Cmdlet 從中取得事件的事件記錄檔路徑。 在逗號分隔清單中輸入記錄檔的路徑,或使用通配符來建立檔案路徑模式。
Get-WinEvent
支援具有 .evt
、.evtx
和 .etl
擴展名的檔案。 您可以在相同的命令中包含來自不同檔案和檔案類型的事件。
類型: | String[] |
別名: | PSPath |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | True |
-ProviderName
指定做為字串陣列,這個 Cmdlet 會從中取得事件的事件記錄提供者。 在逗號分隔清單中輸入提供者名稱,或使用通配符來建立提供者名稱模式。
事件記錄提供者是將事件寫入事件記錄檔的程式或服務。 它不是 PowerShell 提供者。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | True |
輸入
System.String, System.Xml.XmlDocument, System.Collections.Hashtable
您可以管線 LogName(string)、FilterXML 查詢,或 FilterHashtable 查詢以 Get-WinEvent
。
輸出
System.Diagnostics.Eventing.Reader.EventLogConfiguration, System.Diagnostics.Eventing.Reader.EventLogRecord, System.Diagnostics.Eventing.Reader.ProviderMetadata
使用 ListLog 參數,Get-WinEvent
會傳回 System.Diagnostics.Eventing.Reader.EventLogConfiguration 物件。
使用 ListProvider 參數,Get-WinEvent
會傳回 System.Diagnostics.Eventing.Reader.ProviderMetadata 物件。
使用所有其他參數時,Get-WinEvent
會傳回 System.Diagnostics.Eventing.Reader.EventLogRecord 物件。
備註
Get-WinEvent
在 Windows Vista、Windows Server 2008 R2 和更新版本的 Windows 上執行。
Get-WinEvent
的設計目的是在執行 Windows Vista 和更新版本的 Windows 電腦上取代 Get-EventLog
Cmdlet。
Get-EventLog
只會在傳統事件記錄檔中取得事件。
Get-EventLog
會保留在PowerShell 6之前的版本中,以提供回溯相容性。
Windows 預安裝環境 (Windows PE) 不支援 Get-WinEvent
和 Get-EventLog
Cmdlet。