我想打开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)
但它不起作用,此代码打开“系统”日志,而不是“Microsoft-Windows-TerminalServices-RemoteConnectionManager” .
我真的不知道为什么 . 在“win32evtlog.OpenEventLog”的文档中:
指向以null结尾的字符串,该字符串指定返回的句柄将引用的源的名称 . 源名称必须是注册表中EventLog项下的日志文件条目的子项 . 例如,如果注册表具有以下形式,则源名称WinApp将是有效的:HKEY_LOCAL_MACHINE System CurrentControlSet
服务
事件簿
应用
WinApp
安全
系统
如果找不到源名称,则事件日志记录服务使用应用程序日志文件,而不包含事件标识符或类别的消息文件 . http://www.sxlist.com/techref/os/win/api/win32/func/src/f65_20.htm
是的,我在注册表中有子键,名为“Microsoft-Windows-TerminalServices-RemoteConnectionManager”,但在“系统”键中 .
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ eventlog \ System \ Microsoft-Windows-TerminalServices-RemoteConnectionManager
为什么它不起作用?如果它不是一个bug,而是一个功能,那么阅读这个日志的方法是什么?
谢谢你的回答