Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python提取安全日志_Python_Events - Fatal编程技术网

用Python提取安全日志

用Python提取安全日志,python,events,Python,Events,我正在运行以下程序,据我所知,该程序应提取成功登录的日期并打印成功登录的日期。我正在管理员模式下运行此代码,虽然代码运行成功,但它不会打印任何登录日期 import win32evtlog import os server = 'localhost' logtype = 'Security' # 'Application' # 'Security' hand = win32evtlog.OpenEventLog(server,logtype) flags = win32evtlog.EVENT

我正在运行以下程序,据我所知,该程序应提取成功登录的日期并打印成功登录的日期。我正在管理员模式下运行此代码,虽然代码运行成功,但它不会打印任何登录日期

import win32evtlog
import os

server = 'localhost'
logtype = 'Security' # 'Application' # 'Security'
hand = win32evtlog.OpenEventLog(server,logtype)
flags = win32evtlog.EVENTLOG_BACKWARDS_READ|win32evtlog.EVENTLOG_SEQUENTIAL_READ
total = win32evtlog.GetNumberOfEventLogRecords(hand)

while True:
    events = win32evtlog.ReadEventLog(hand, flags,0)
if events:
    for event in events:
        if event.EventID == 4624:
            date = str(event.TimeGenerated)
            print(date)
我的任务是将任何成功的登录日期打印到文本文件中。像这样的语句是否应该在事件循环中完成任务

temp_file = open('temp.txt', 'a')
temp_file.write(date + '\n')

如果它没有打印任何登录日期(即,它不工作),写入文件将无法修复它。如果逐字复制代码,问题可能是“If events:”块必须在while循环中缩进。但是,是的,如果将您的语句放在while循环中,它会起作用。

感谢大家的帮助,他们仍在学习逻辑、语法和术语。这段代码运行正常,这是一个简单的缩进错误,将写操作移出循环以获得正确的输出:

import win32evtlog
import os

logins = open('logins.txt', 'w')
logins.write('Login Attempts:' '\n')
server = 'localhost'
logtype = 'Security' # 'Application' # 'Security'
hand = win32evtlog.OpenEventLog(server,logtype)
flags = win32evtlog.EVENTLOG_BACKWARDS_READ|win32evtlog.EVENTLOG_SEQUENTIAL_READ
total = win32evtlog.GetNumberOfEventLogRecords(hand)

while True:
    events = win32evtlog.ReadEventLog(hand, flags,0)
    if events:
        for event in events:
            if event.EventID == 4624:
                date = str(event.TimeGenerated)
                print(date)
                logins.write(date + '\n')