Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.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
C#EventViewer日志解析_C#_Logging_Event Viewer - Fatal编程技术网

C#EventViewer日志解析

C#EventViewer日志解析,c#,logging,event-viewer,C#,Logging,Event Viewer,我负责解析转发的EventViewer(evt)日志(Windows 7?)。为此,我使用LogParser 2.2在日志上运行一个查询,取出特定的EventID并将其写入CSV文件。然而,我正在考虑用它来代替 我在这些evt上执行的查询包括一个“字符串”列,该列输出一堆垃圾,通常采用以下格式:| Username | Usergroup |。。。但这并不一致。我想要的是一种一致的方式来获取这些事件的用户名,并过滤掉无用的数据。问题是我不理解输出的格式。我想知道这些事件是否有标准格式,或者这是我

我负责解析转发的EventViewer(evt)日志(Windows 7?)。为此,我使用LogParser 2.2在日志上运行一个查询,取出特定的EventID并将其写入CSV文件。然而,我正在考虑用它来代替

我在这些evt上执行的查询包括一个“字符串”列,该列输出一堆垃圾,通常采用以下格式:| Username | Usergroup |。。。但这并不一致。我想要的是一种一致的方式来获取这些事件的用户名,并过滤掉无用的数据。问题是我不理解输出的格式。我想知道这些事件是否有标准格式,或者这是我工作中的自定义格式?我现在使用的方法基本上是查找已知的用户组,并检查左侧的潜在用户名(跳过“LOCALS SERVICE”、“NETWORK SERVICE”、“-”和其他一些关键字)。我使用这种方法的问题是,我不知道所有的用户组,而且我可以得到用户名的误报

以下是我正在关注的一些问题:


最后,我仔细查看了evt文件,发现它们有一套XML模式。“Strings”实际上不是一个元素,而是EventData子数据元素的关联值。我所做的只是查看每个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>

S-1-5-18
XXX-PC美元
工作组
0x3e7
S-1-5-18
系统
新界管理局
0x3e7
...

我最终从日志解析器切换到EventViewerReader。这让我可以按名称抓取XML“字符串”。
<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>