我负责解析转发的EventViewer(evt)日志(Windows 7?)。为此,我使用Log Parser 2.2在日志上运行查询,并提取特定的EventID并将其写入CSV文件。但是,我正在考虑使用EventViewerReader来代替。
我在这些evt上执行的查询包括一个“字符串”列,该列通常以以下格式输出一堆垃圾:SID | Username | Usergroup | ...,但不一致。我想要的是一种一致的方式来获取这些事件的用户名并过滤出无用的数据。问题是我不理解输出的格式。我想知道这些事件是否具有标准格式,或者这是我工作中的自定义格式?我现在使用的方法基本上是查找已知的用户组,并在它们的左侧检查潜在的用户名(跳过“本地服务”,“网络服务”,“-”和其他一些关键字)。这种方法的问题是我不了解所有用户组,而且我可以在用户名上得到假阳性。
以下是我正在查看的EventID Codes: https://www.ultimatewindowssecurity.com/securitylog/quickref/downloads/quickref.zip
4624 An account was successfully logged on
4625 An account failed to log on
4647 User initiated logoff
4648 A logon was attempted using explicit credentials
4800 The workstation was locked
4801 The workstation was unlocked
4802 The screen saver was invoked
4803 The screen saver was dismissed
答案 0 :(得分:0)
我最终仔细查看了evt文件,发现它们具有一套XML模式。 “字符串”实际上不是元素,而是EventData子Data元素的并置值。我所做的就是查看每个EventID的架构,并找到每种事件类型中用户名的深度。
我认为它是用于登录/注销的字符串[5](TargetUserName),用于其他夫妇的字符串[0]和用于其他夫妇的字符串[1]。
<EventData>
<Data Name="SubjectUserSid">S-1-5-18</Data>
<Data Name="SubjectUserName">XXX-PC$</Data>
<Data Name="SubjectDomainName">WORKGROUP</Data>
<Data Name="SubjectLogonId">0x3e7</Data>
<Data Name="TargetUserSid">S-1-5-18</Data>
<Data Name="TargetUserName">SYSTEM</Data>
<Data Name="TargetDomainName">NT AUTHORITY</Data>
<Data Name="TargetLogonId">0x3e7</Data>
...
</EventData>