2016-10-12 61 views
0

enter image description here私は、Windowsのイベントビューアのログを取得するためにPythonのWMIモジュールを使用するPythonコードを持っています。しかし、私は、ログを生成したプロセスのPIDを取得することができません。 マイコード:WindowsのイベントログからPIDを取得する方法は?

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は、WMIオブジェクトのリストです。このリストの各オブジェクトはWindowsのシステムログです。このログを生成したプロセスのPIDが必要です。 私はいくつかのmsdnドキュメントを使いましたが、そこに何か役に立つものが見つかりませんでした。

私は上記の画像にマークされた情報を取得します。

答えて

0

イベントログ項目を取得するためのWin32 API呼び出しはReadEventLogであり、これはEVENTLOGRECORDの構造体を返します。これらはプロセス識別子のフィールドを持たないので、イベントメッセージのデータにこれを含めない限り、これは利用できません。

+0

ReadEventLogの最初の引数は、読み取るイベントログのハンドルです。 OpenEventLog関数は、このハンドルを返します。ハンドルを使用してpidを取得することができます。 – Marichyasana

+0

どちらの提案も私が探していたものを解決しませんでした。ウィンドウ内のイベントログをチェックすると、特定のログの詳細セクションの下に、そのログをトリガーしたプロセスIDが表示されますが、取得する方法を見つけることができません。 –

関連する問題