为了账号安全,请及时绑定邮箱和手机立即绑定

C# EventViewer 日志解析

C# EventViewer 日志解析

C#
白猪掌柜的 2021-08-22 15:33:29
我负责解析转发的 EventViewer (evt) 日志(Windows 7?)。为此,我使用 Log Parser 2.2 对日志运行查询,并提取特定的 EventID 并将它们写入 CSV 文件。但是,我正在考虑使用EventViewerReader来代替。我在这些 evt 上所做的查询包括一个“字符串”列,它输出一堆通常格式为:SID |用户名|用户组|...但它不一致的垃圾。我想要的是一种一致的方式来获取这些事件的用户名并过滤掉无用的数据。问题是我不明白输出的格式。我想知道这些事件是否具有标准格式,或者这是我工作中的自定义格式?我现在使用的方法基本上是查找已知用户组并检查它们左侧的潜在用户名(跳过“LOCALS SERVICE”、“NETWORK SERVICE”、“-”和其他一些关键字)。我对这种方法的问题是我不知道所有的用户组,而且我可能会误报用户名。以下是我正在查看的一些EventID 代码:https : //www.ultimatewindowssecurity.com/securitylog/quickref/downloads/quickref.zip4624    An account was successfully logged on4625    An account failed to log on4647    User initiated logoff4648    A logon was attempted using explicit credentials4800    The workstation was locked4801    The workstation was unlocked4802    The screen saver was invoked4803    The screen saver was dismissed
查看完整描述

1 回答

?
梦里花落0921

TA贡献1772条经验 获得超6个赞

我最终仔细查看了 evt 文件,发现它们有一套 XML 模式。“字符串”并不是真正的元素,而是 EventData 子数据元素的串联值。我所做的只是查看每个 EventID 的架构,并找到每个事件类型中用户名的深度。


我认为它是 strings[5] (TargetUserName) 用于登录/注销,strings[0] 用于其他几个,strings[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>


查看完整回答
反对 回复 2021-08-22
  • 1 回答
  • 0 关注
  • 264 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信