我正在尝试创建一个python应用程序,它可以使用事件查看器检测启动、关闭、BSOD、Windows Update等事件,并将它们写入文件
但是,我发现我没有得到所有事件,也没有得到我要查找的事件(例如,事件ID 6005和6006-服务启动和关闭)
经过一些调试,我发现我只检索“用户”是“系统”的事件。如何更改此选项以从所有用户检索事件
以下是我目前的代码:
import win32evtlog, win32evtlogutil
computer = None # Work on the local machine only
logType = "System"
verbose = False
h=win32evtlog.OpenEventLog(None, logType)
numRecords = win32evtlog.GetNumberOfEventLogRecords(h)
numRead = 0
numFiltered = 0
print("Number of Records " + str(numRecords))
f = open("evts.txt", "a")
while 1:
objects = win32evtlog.ReadEventLog(h, win32evtlog.EVENTLOG_BACKWARDS_READ|win32evtlog.EVENTLOG_SEQUENTIAL_READ, 0)
if not objects:
break
for object in objects:
event_id = object.EventID
if event_id > 2000 and event_id < 6006:
msg = win32evtlogutil.SafeFormatMessage(object, logType)
f.write(str(object.EventID) + "\t| " + str(object.EventType) + "\t| \n" + msg)
numFiltered = numFiltered + 1
numRead = numRead + len(objects)
print("Number of events read: " + str(numRead))
print("Number of filtered events: " + str(numFiltered))
f.close()
此代码的输出仅返回ID为4000和4001的事件,但我可以在Windows事件查看器中看到更多内容
附言:
目前没有回答
相关问题 更多 >
编程相关推荐