PowerShell:如何获取有关WMI事件的详细信息?

时间:2009-09-26 13:34:30

标签: windows events powershell event-handling wmi

我正在Windows 7上学习PowerShell 2.0。

我的任务很简单:我想听一个WMI事件,然后显示一些有关它的信息。

以下是我目前正在做的事情:

Register-WmiEvent -class win32_ProcessStartTrace -sourceIdentifier processStart
Wait-Event

似乎有效。实际上,当我开始一个过程时,我得到了这个:

ComputerName     :
RunspaceId       : bb0f38b9-2f2e-4f7c-98ec-ec3811e8e601
EventIdentifier  : 11
Sender           : System.Management.ManagementEventWatcher
SourceEventArgs  : System.Management.EventArrivedEventArgs
SourceArgs       : {System.Management.ManagementEventWatcher, System.Management.EventArrivedEventArgs}
SourceIdentifier : processStart
TimeGenerated    : 26/09/2009 15:19:25
MessageData      :

问题是,我不知道如何获得有关该事件的详细信息。例如,如何获取刚刚启动的进程的名称?理想情况下,我会有这样的事情:

__GENUS             : 2
__CLASS             : Win32_ProcessStartTrace
__SUPERCLASS        : Win32_ProcessTrace
__DYNASTY           : __SystemClass
__RELPATH           :
__PROPERTY_COUNT    : 7
__DERIVATION        : {Win32_ProcessTrace, Win32_SystemTrace, __ExtrinsicEvent, __Event...}
__SERVER            :
__NAMESPACE         :
__PATH              :
ParentProcessID     : 1480
ProcessID           : 6860
ProcessName         : notepad++.exe
SECURITY_DESCRIPTOR :
SessionID           : 1
Sid                 : {1, 5, 0, 0...}
TIME_CREATED        : 128984449371986347

我可以在

时获得上述信息
(get-event).sender.waitfornextevent()

但是,显然,这并不是我想到的 - 我不想等待另一个事件,我想要了解当前的信息。

1 个答案:

答案 0 :(得分:1)