如何读取python中“应用程序和服务日志”下的事件日志?

问题描述 投票:0回答:1

我希望使用pywin32-> win32evtlog阅读“应用程序和服务日志”下的一些事件日志。

我可以读取属于“系统”,“应用程序”,“安全”和其他标准日志的事件日志。但是当我尝试从“ Microsoft-Windows-TWinUI / Operational”中读取一些日志时,我将获得“ Application”的日志。

根据MSDN,获取“应用程序”日志而不是所需日志的问题是因为找不到自定义日志。

我试图使用类似提供的答案here,但似乎无法在python中完成。

import win32evtlog

handle = win32evtlog.OpenEventLog(None, "Microsoft-Windows-TWinUI/Operational")
flags = win32evtlog.EVENTLOG_BACKWARDS_READ | win32evtlog.EVENTLOG_SEQUENTIAL_READ
if events:
   for event in events:
      print(event.StringInserts)

我更喜欢使用pywin32,但这不是必须的,我可以使用其他软件包。

python pywin32 event-log
1个回答
0
投票

我知道我来晚了,但万一其他人对此感到疑惑...

使用库中较新的Evt *函数。您可以通过使用EvtQuery-> EvtNext-> EvtRender从任何日志中访问事件元数据的xml,如本GitHub帖子的答案中所述:https://github.com/mhammond/pywin32/issues/676

P.S。模块win32evtlog的较旧函数(如OpenEventLog)返回的句柄与较新的Evt *函数不兼容,反之亦然。因此,为了理智起见,请避免将它们混合使用! :)

© www.soinside.com 2019 - 2024. All rights reserved.