首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2.7 PyWin32 ReadEventLog返回事件的部分列表

Python2.7 PyWin32 ReadEventLog返回事件的部分列表
EN

Stack Overflow用户
提问于 2020-04-03 07:48:32
回答 1查看 125关注 0票数 0

我正在尝试使用PyWin32从windows中读取整个系统日志。今天早些时候我能够做到这一点,但有些事情发生了变化,我现在只返回部分日志,特别是当我知道有数千个事件时,只返回14个事件。

代码语言:javascript
复制
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)

有什么想法可以改变,或者我应该做些什么来返回完整的事件列表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-03 16:27:39

根据msdn上的文档:Querying for Event Information

您将需要读取记录块,直到到达日志末尾或发生错误为止。

尝试以下示例以获取正确的记录数:

代码语言:javascript
复制
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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61003020

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档