Get-Event
获取事件队列中的事件。
语法
BySource (默认值)
Get-Event
[[-SourceIdentifier] <String>]
[<CommonParameters>]
ById
Get-Event
[-EventIdentifier] <Int32>
[<CommonParameters>]
说明
Get-Event
cmdlet 获取当前会话的 PowerShell 事件队列中的事件。 可以获取所有事件或使用 EventIdentifier 或 SourceIdentifier 参数来指定事件。
事件发生时,会将其添加到事件队列。 事件队列包括已注册的事件、使用 New-Event
cmdlet 创建的事件,以及 PowerShell 退出时引发的事件。 可以使用 Get-Event
或 Wait-Event
来获取事件。
此 cmdlet 不会从事件查看器日志中获取事件。 若要获取这些事件,请使用 Get-WinEvent
或 Get-EventLog
。
示例
示例 1:获取所有事件
PS C:\> Get-Event
此命令获取事件队列中的所有事件。
示例 2:按源标识符获取事件
PS C:\> Get-Event -SourceIdentifier "PowerShell.ProcessCreated"
此命令获取 SourceIdentifier 属性的值为 PowerShell.ProcessCreated 的事件。
示例 3:根据生成事件的时间获取事件
PS C:\> $Events = Get-Event
PS C:\> $Events[0] | Format-List -Property *
ComputerName :
RunspaceId : c2153740-256d-46c0-a57c-b805917d1b7b
EventIdentifier : 1
Sender : System.Management.ManagementEventWatcher
SourceEventArgs : System.Management.EventArrivedEventArgs
SourceArgs : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : ProcessStarted
TimeGenerated : 11/13/2008 12:09:32 PM
MessageData : PS C:\> Get-Event | where {$_.TimeGenerated -ge "11/13/2008 12:15:00 PM"}
ComputerName :
RunspaceId : c2153740-256d-46c0-a57c-b8059325d1a0
EventIdentifier : 1
Sender : System.Management.ManagementEventWatcher
SourceEventArgs : System.Management.EventArrivedEventArgs
SourceArgs : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : ProcessStarted
TimeGenerated : 11/13/2008 12:15:00 PM
MessageData :
此示例演示如何使用 SourceIdentifier 以外的属性获取事件。
第一个命令获取事件队列中的所有事件,并将其保存在 $Events
变量中。
第二个命令使用数组表示法获取 $Events
变量中数组中的第一个(0 索引)事件。 该命令使用管道运算符(|
)将事件发送到 Format-List
命令,该命令在列表中显示事件的所有属性。 这样,就可以检查事件对象的属性。
第三个命令演示如何使用 Where-Object
cmdlet 根据生成事件的时间获取事件。
示例 4:按事件标识符获取事件
PS C:\> Get-Event -EventIdentifier 2
此命令获取事件标识符为 2 的事件。
参数
-EventIdentifier
指定此 cmdlet 为其获取事件的事件标识符。
参数属性
类型: | Int32 |
默认值: | None |
支持通配符: | False |
不显示: | False |
别名: | Id |
参数集
ById
Position: | 0 |
必需: | True |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
-SourceIdentifier
指定此 cmdlet 获取事件的源标识符。 默认值为事件队列中的所有事件。 不允许使用通配符。
参数属性
类型: | String |
默认值: | None |
支持通配符: | False |
不显示: | False |
参数集
BySource
Position: | 0 |
必需: | False |
来自管道的值: | False |
来自管道的值(按属性名称): | True |
来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
None
不能用管道将对象传送到此 cmdlet。
输出
PSEventArgs
此 cmdlet 为每个事件返回 PSEventArgs 对象。 若要查看此对象的说明,请键入 Get-Help Get-Event -Full
并查看帮助主题的“说明”部分。
备注
Linux 或 macOS 平台上没有可用的事件源。
事件、事件订阅和事件队列仅存在于当前会话中。 如果关闭当前会话,事件队列将被丢弃,事件订阅也将被取消。
Get-Event
cmdlet 返回具有以下属性的 PSEventArgs 对象(System.Management.Automation.PSEventArgs):
ComputerName。 发生该事件的计算机的名称。 仅当事件从远程计算机转发时,才会填充此属性值。
RunspaceId。 唯一标识发生事件的会话的 GUID。 仅当事件从远程计算机转发时,才会填充此属性值。
EventIdentifier。 一个整数(Int32),用于唯一标识当前会话中的事件通知。
寄件人。 生成事件的对象。 在 Action 参数的值中,
$Sender
自动变量包含发送方对象。SourceEventArgs。 派生自 EventArgs 的第一个参数(如果存在)。 例如,在签名包含对象发送方的计时器运行事件中,Timers.ElapsedEventArgs e,SourceEventArgs 属性将包含 Timers.ElapsedEventArgs。 在 Action 参数的值中,
$EventArgs
自动变量包含此值。SourceArgs。 原始事件签名的所有参数。 对于标准事件签名,
$args[0]
表示发送方,$args[1]
表示 sourceEventArgs 。 在 Action 参数的值中,$args
自动变量包含此值。SourceIdentifier。 标识事件订阅的字符串。 在 Action 参数的值中, 自动变量的
$Event
属性包含此值。TimeGenerated。 一个 DateTime 对象,该对象表示生成事件的时间。 在 Action 参数的值中, 自动变量的
$Event
属性包含此值。MessageData。 与事件订阅关联的数据。 用户在注册事件时指定此数据。 在 Action 参数的值中, 自动变量的
$Event
属性包含此值。