【问题标题】:How to retrieve PID from windows event log?如何从 Windows 事件日志中检索 PID?
【发布时间】:2016-10-12 11:29:24
【问题描述】:

我有一个python代码,它使用python的WMI模块来获取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 文档,但在那里找不到任何有用的东西。

我想检索上图中标记的信息。

【问题讨论】:

    标签: python wmi pid wmi-query event-viewer


    【解决方案1】:

    获取事件日志项的 Win32 API 调用是 ReadEventLog,它返回 EVENTLOGRECORD 结构。这些没有用于进程标识符的字段,因此除非您的事件已将其包含在事件消息的数据中,否则它看起来将不可用。

    【讨论】:

    • ReadEventLog 的第一个参数是要读取的事件日志的句柄。 OpenEventLog 函数返回此句柄。您可以使用句柄来获取 pid。
    • 这两个建议都没有解决我想要的问题。如果您检查 Windows 中的事件日志,在特定日志的详细信息部分下,您会找到触发该日志的进程 ID,但我无法找到检索它的方法。
    猜你喜欢
    • 2019-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 2013-07-21
    相关资源
    最近更新 更多