当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] Get-Event (Microsoft.PowerShell.Utility)

作者:精品下载站 日期:2024-12-14 02:07:05 浏览:17 分类:玩电脑

Get-Event (Microsoft.PowerShell.Utility)


Get-Event

模块 :Microsoft.PowerShell.Utility

获取事件队列中的事件。

句法

Get-Event
   [[-SourceIdentifier] <String>]
   [<CommonParameters>]
Get-Event
   [-EventIdentifier] <Int32>
   [<CommonParameters>]

描述

Get-Event cmdlet 获取当前会话的 PowerShell 事件队列中的事件。您可以获取所有事件,也可以使用 EventIdentifierSourceIdentifier 参数指定事件。

当事件发生时,它被添加到事件队列中。事件队列包括您已注册的事件、使用 New-Event cmdlet 创建的事件以及 PowerShell 退出时引发的事件。您可以使用Get-EventWait-Event来获取事件。

此 cmdlet 不会从事件查看器日志中获取事件。要获取这些事件,请使用 Get-WinEventGet-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 获取事件的事件标识符。

类型 :

整数32

别名:

Id

位置:

0

默认值:

None

必需的:

True

接受管道输入:

True

接受通配符:

False

-SourceIdentifier

指定此 cmdlet 获取事件的源标识符。默认为事件队列中的所有事件。不允许使用通配符。

类型 :

String

位置:

0

默认值:

None

必需的:

False

接受管道输入:

True

接受通配符:

False

输入

您无法将对象通过管道传输到此 cmdlet。

输出

PSEventArgs

此 cmdlet 为每个事件返回一个 PSEventArgs 对象。要查看此对象的描述,请输入 Get-Help Get-Event -Full 并查看帮助主题的注释部分。

笔记

Linux 或 macOS 平台上没有可用的事件源。

事件、事件订阅和事件队列仅存在于当前会话中。如果关闭当前会话,事件队列将被丢弃,事件订阅也会被取消。

Get-Event cmdlet 返回具有以下属性的 PSEventArgs 对象 (System.Management.Automation.PSEventArgs):

  • 计算机名。发生事件的计算机的名称。仅当从远程计算机转发事件时才会填充此属性值。

  • 运行空间 ID。唯一标识发生事件的会话的 GUID。仅当从远程计算机转发事件时才会填充此属性值。

  • 事件标识符。一个整数 (Int32),唯一标识当前会话中的事件通知。

  • 发件人。生成事件的对象。在 Action 参数的值中,$Sender 自动变量包含发送者对象。

  • SourceEventArgs。从 EventArgs 派生的第一个参数(如果存在)。例如,在签名具有“对象发送者”形式的计时器已过事件中,Timers.ElapsedEventArgs e,SourceEventArgs 属性将包含 Timers.ElapsedEventArgs 。在 Action 参数的值中,$EventArgs 自动变量包含此值。

  • 源参数。原始事件签名的所有参数。对于标准事件签名,$Args[0] 代表发送者,$Args[1] 代表SourceEventArgs。在 Action 参数的值中,$Args 自动变量包含此值。

  • 源标识符。标识事件订阅的字符串。在 Action 参数的值中,$Event 自动变量的 SourceIdentifier 属性包含此值。

  • 时间生成。表示事件生成时间的 DateTime 对象。在 Action 参数的值中,$Event 自动变量的 TimeGenerated 属性包含此值。

  • 消息数据。与事件订阅关联的数据。用户在注册事件时指定此数据。在 Action 参数的值中,$Event 自动变量的 MessageData 属性包含此值。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯