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>]
说明
Get-WinEvent
cmdlet 从事件日志(包括经典日志)获取事件,例如 系统 和 应用程序 日志。 该 cmdlet 从 Windows Vista 中引入的 Windows 事件日志技术生成的事件日志中获取数据。 此外,Windows 事件跟踪生成的日志文件中的事件。 默认情况下,Get-WinEvent
按最新到最早的顺序返回事件信息。
Get-WinEvent
列出事件日志和事件日志提供程序。 若要中断命令,请按 ctrlGet-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
使用 属性 参数和星号(*
)通配符来显示每个属性。
示例 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:从多个服务器获取事件日志
此示例获取表示三台计算机上 应用程序 事件日志的对象: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 语句 { }
)中的脚本块运行 Get-WinEvent
命令。
ListLog 参数指定 应用程序 日志。
ComputerName 参数使用变量 $Server
从每个服务器获取日志信息。
对象将管道向下发送到 Select-Object
cmdlet。 Format-Table
cmdlet,以显示 PowerShell 控制台中的输出。
自动调整大小 参数格式化输出以适应屏幕。
示例 5:获取事件日志提供程序和日志名称
此命令获取事件日志提供程序及其写入的日志。
Get-WinEvent -ListProvider *
Name : .NET Runtime
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Name : .NET Runtime Optimization Service
LogLinks : {Application}
Opcodes : {}
Tasks : {}
Get-WinEvent
cmdlet 从计算机获取日志信息。
ListProvider 参数使用星号(*
)通配符显示有关每个提供程序的信息。 在输出中,名称 是提供程序,LogLinks 是提供程序写入的日志。
示例 6:获取写入到特定日志的所有事件日志提供程序
此命令获取写入 应用程序 日志的所有提供程序。
(Get-WinEvent -ListLog Application).ProviderNames
.NET Runtime
.NET Runtime Optimization Service
Application
Application Error
Application Hang
Application Management
Get-WinEvent
cmdlet 从计算机获取日志信息。
ListLog 参数使用 应用程序 来获取该日志的对象。
ProviderNames 是对象的属性,并显示写入 应用程序 日志的提供程序。
示例 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:获取事件提供程序生成的事件 ID
此命令列出 Microsoft-Windows-GroupPolicy 事件提供程序生成的事件 ID 以及事件说明。
(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
显示事件对象的 ID 和 Description。
示例 9:从事件对象属性获取日志信息
此示例演示如何使用事件对象属性获取有关日志内容的信息。 事件对象存储在变量中,然后按 事件 ID 和 级别进行分组和计数。
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
Get-WinEvent
cmdlet 使用 LogName 参数来指定 Windows PowerShell 事件日志。 事件对象存储在 $Event
变量中。
$Event.Count
使用 $Event
变量的 Count 属性显示记录的事件总数。
$Event
变量将管道向下发送到 Group-Object
cmdlet。
Group-Object
使用 属性 参数指定 Id 属性,并通过 Id对对象进行计数。NoElement 参数从对象输出中删除其他属性。 分组对象将管道向下发送到 Sort-Object
cmdlet。
Sort-Object
使用 Property 参数按 计数对对象进行排序。
降序 参数按计数显示输出,从高到低。 在输出中,Count 列包含每个事件的总数。
Name 列包含分组 ID 数字。
$Event
变量将管道向下发送到 Group-Object
cmdlet。
Group-Object
使用 Property 参数指定 LevelDisplayName 属性,并通过 LevelDisplayName对对象进行计数。 对象按 警告 和 信息等级别分组。
NoElement 参数从输出中删除其他属性。 在输出中,Count 列包含每个事件的总数。
Name 列包含分组 LevelDisplayName。
示例 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
使用 属性 参数通过 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中的存档 PowerShell 日志。
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。 $_
变量表示管道中的当前对象,Id 是事件 ID 属性。
示例 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 参数从 应用程序 日志中获取事件。 哈希表使用 键/值 对。 有关 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
变量中。
Get-WinEvent
cmdlet 获取日志信息。
FilterHashtable 参数用于筛选输出。
LogName 键将值指定为 应用程序 日志。
StartTime 键使用存储在 $Date
变量中的值。
ID 键使用事件 ID 值,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 方法获取当前日期之前的七天日期。 日期对象存储在 $StartTime
变量中。
Get-WinEvent
cmdlet 获取日志信息。
FilterHashtable 参数用于筛选输出。
LogName 键将值指定为 应用程序 日志。
ProviderName 键使用值,应用程序错误,这是事件的 源。
Data 键使用值 iexplore.exeStartTime 键使用存储在 $StartTime
变量中的值。
参数
-ComputerName
指定此 cmdlet 从事件日志中获取事件的计算机的名称。 键入计算机的 NetBIOS 名称、Internet 协议(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 对象。
- 数据 值采用未命名字段中的事件数据。 例如,经典事件日志中的事件。
-
<named-data>
键表示命名的事件数据字段。
当 Get-WinEvent
无法解释 键/值 对时,它将密钥解释为事件中事件数据区分大小写的名称。
对的有效
-
LogName=
<String[]>
-
ProviderName=
<String[]>
-
路径=
<String[]>
-
关键字=
<Long[]>
-
ID=
<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
获取调试和分析日志,以及其他事件日志。 当名称参数的值包含通配符时,需要 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。