我想打开Windows事件日志的特定日志,名为" Microsoft-Windows-TerminalServices-RemoteConnectionManager"。我用了这段代码:
import win32evtlog
logtype = 'Microsoft-Windows-TerminalServices-RemoteConnectionManager'
hand = win32evtlog.OpenEventLog("",logtype)
flags = win32evtlog.EVENTLOG_SEQUENTIAL_READ|win32evtlog.EVENTLOG_FORWARDS_READ
while True:
events = win32evtlog.ReadEventLog(hand, flags,0)
if events:
for event in events:
print ('Event ID:', event.EventID & 0x1FFFFFFF)
但是它没有用,这段代码打开了" System" log,而不是#34; Microsoft-Windows-TerminalServices-RemoteConnectionManager"。
我真的不知道为什么。 在" win32evtlog.OpenEventLog"的文档中:
指向以null结尾的字符串,该字符串指定的名称 返回的句柄将引用的源。源名称必须 是注册表中EventLog项下的日志文件条目的子项。 例如,如果注册表具有,则源名称WinApp将是有效的 以下表格:
HKEY_LOCAL_MACHINE
系统
CurrentControlSet Services EventLog Application WinApp Security System
如果找不到源名称,则事件记录服务使用 应用程序日志文件,没有事件标识符的消息文件或 类别。
http://www.sxlist.com/techref/os/win/api/win32/func/src/f65_20.htm
是的,我在注册表中有子键,名为" Microsoft-Windows-TerminalServices-RemoteConnectionManager",但在" System"键。
HKEY_LOCAL_MACHINE \系统\ CurrentControlSet \服务\事件日志\ SYSTEM \ Microsoft的Windows的TerminalServices-RemoteConnectionManager
为什么它不起作用? 如果它不是一个bug,而是一个功能,那么阅读这个日志的方法是什么?
感谢您的回答