我正在尝试使用PyWin32从windows中读取整个系统日志。今天早些时候我能够做到这一点,但有些事情发生了变化,我现在只返回部分日志,特别是当我知道有数千个事件时,只返回14个事件。
logtype = "System"
server = "localhost"
hand = win32evtlog.OpenEventLog(server,logtype)
flags = win32evtlog.EVENTLOG_BACKWARDS_READ|win32evtlog.EVENTLOG_SEQUENTIAL_READ
events = win32evtlog.ReadEventLog(hand,flags,0)
win32evtlog.CloseEventLog(hand)
print len(events)有什么想法可以改变,或者我应该做些什么来返回完整的事件列表?
发布于 2020-04-03 16:27:39
根据msdn上的文档:Querying for Event Information
您将需要读取记录块,直到到达日志末尾或发生错误为止。
尝试以下示例以获取正确的记录数:
import win32api
import win32evtlog
import win32security
import win32evtlogutil
logtype = "System"
server = "localhost"
hand = win32evtlog.OpenEventLog(server,logtype)
flags = win32evtlog.EVENTLOG_BACKWARDS_READ|win32evtlog.EVENTLOG_SEQUENTIAL_READ
num=0
while 1:
objects = win32evtlog.ReadEventLog(hand, flags, 0)
if not objects:
break
num = num + len(objects)
win32evtlog.CloseEventLog(hand)
print(num)https://stackoverflow.com/questions/61003020
复制相似问题