2016-10-12 1 views
0

enter image description here J'ai un code python qui utilise le module WMI de python pour obtenir les journaux de l'observateur d'événements Windows. Mais je suis incapable de récupérer le PID du processus qui a généré le journal. Mon code:Comment récupérer un PID à partir du journal des événements de Windows?

wmi_obj = wmi.WMI('.') #Initialize WMI object and query. 
wmi_query = "SELECT * FROM Win32_NTLogEvent WHERE Logfile='System' AND EventType=1" 
query_result = wmi_obj.query(wmi_query) # Query WMI object 

query_result est une liste d'objets WMI. Chaque objet de cette liste est un journal système Windows et je souhaite que le processus qui a généré ce journal soit identifié par un PID. J'ai parcouru plusieurs doc msdn mais je n'y ai rien trouvé d'utile.

Je veux récupérer les informations marquées dans l'image ci-dessus.

Répondre

0

L'appel de l'API Win32 pour obtenir les éléments du journal des événements est ReadEventLog et renvoie les structures EVENTLOGRECORD. Ceux-ci n'ont pas de champ pour un identificateur de processus, à moins que vos événements ne l'aient inclus dans les données du message d'événement, il semble que ce ne sera pas disponible.

+0

Le premier argument de ReadEventLog est un descripteur du journal des événements à lire. La fonction OpenEventLog retourne ce handle. Vous pouvez utiliser la poignée pour obtenir le pid. – Marichyasana

+0

Les deux la suggestion n'a pas résolu ce que je cherchais. Si vous vérifiez les journaux des événements dans Windows, sous la section des détails pour un journal particulier, vous trouverez l'ID du processus qui a déclenché ce journal, mais je suis incapable de trouver un moyen de le récupérer. –