我尝试使用以下代码查询Windows事件日志(特别是Sysmon创建的日志):
SYSMON_XPATH_QUERY = """<QueryList><Query Id="0" Path="{event_log_path}"><Select Path="{event_log_path}">*[System[TimeCreated[@SystemTime>='{event_timestamp}']]]</Select></Query></QueryList>"""
SYSMON_EVENT_LOG_PATH = "Microsoft-Windows-Sysmon/Operational"
event_timestamp = "2017-06-25T17:13:00.453530200Z"
while True:
query_handle = win32evtlog.EvtQuery(
SYSMON_EVENT_LOG_PATH,
win32evtlog.EvtQueryForwardDirection,
SYSMON_XPATH_QUERY.format(
event_log_path=SYSMON_EVENT_LOG_PATH,
event_timestamp=event_timestamp),
None)
event = win32evtlog.EvtNext(query_handle, 1, 1, 0)
while event:
# converting the event to xml and then python object -> result in sysmon_record
...
event_timestamp = sysmon_record.TimeCreated # the same parameter I query on
event = win32evtlog.EvtNext(...)
如果我将event_timestamp设置为在当前时间之前大约一小时,那么查询将返回从该时间到最近事件的所有事件,然后停止返回结果。 我认为这可能是我的转换问题,但后来我尝试将event_timestamp设置为比当前时间早半小时,然后再次执行脚本,但没有得到任何结果。在
额外细节:
提前谢谢
编辑:
似乎在运行代码之前清理事件日志可以解决问题…
我不会把它作为答案贴出来,因为这显然不是一个解决方案。我不再做任何研究,因为我不介意清理日志(我不在乎过去的事情)。在
目前没有回答
相关问题 更多 >
编程相关推荐