我想阅读一些“应用程序和服务日志”下的事件日志,最好使用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,但这不是必须的,我可以使用其他软件包。
答案 0 :(得分:1)
我知道我来晚了,但是万一其他人想知道这个...
使用库中较新的Evt *函数。您可以使用EvtQuery-> EvtNext-> EvtRender从任何日志中访问事件元数据的xml,如GitHub帖子中的答案所述:https://github.com/mhammond/pywin32/issues/676
P.S。模块win32evtlog的较旧函数(如OpenEventLog)返回的句柄与较新的Evt *函数不兼容,反之亦然。因此,为了理智起见,请避免将它们混合使用! :)