2009-09-26 7 views
0

J'apprends PowerShell 2.0 sur Windows 7.PowerShell: comment obtenir des informations détaillées sur un événement WMI?

Ma tâche est simple: je veux écouter un événement WMI et ensuite afficher quelques informations à son sujet.

Voici ce que je fais actuellement:

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

Il semble fonctionner. En effet, je reçois quand je commence un processus:

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  : 

Le problème est, je ne sais pas comment obtenir des informations détaillées sur l'événement. Par exemple, comment obtenir le nom du processus qui vient de démarrer? Idéalement, je voudrais quelque chose comme ceci:

__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 

je peux obtenir les informations ci-dessus quand je fais

(get-event).sender.waitfornextevent() 

Mais, de toute évidence, ce n'est pas vraiment ce que j'avais à l'esprit - je ne veux pas pour attendre un autre événement, je veux des infos sur l'actuel.

Répondre

Questions connexes