使用正则表达式仅过滤Windows事件日志中的第二个帐户名称

时间:2016-08-30 11:39:17

标签: regex event-log windows-security event-id

有没有人知道reqex语法只过滤Windows事件日志中的第二个帐户名?我不想要第一个帐户名称,但我提到的第二个帐户名称是已删除的帐户,这是我有兴趣查找的内容。

我能够同时取得这两项但我真的只想拥有第二个帐户

示例:

<13>May 23 15:11:00 14.5.15.1 AgentDevice=WindowsLog AgentLogFile=Security Source=Microsoft-Windows-Security-Auditing Computer=john.doe User= Domain= EventID=4726 EventIDCode=4726 EventType=8 EventCategory=13824 RecordNumber=4156926121 TimeGenerated=1472042299838 TimeWritten=1472048832838 Message=A user account was deleted. Subject: Security ID: S-1-5-21-37618230-746332178-285459281-20341 Account Name: AdminGuy Account Domain: Some Logon ID: 0x2q45w29b1 Target Account: Security ID: S-1-5-21-37438650-746321018-288529281-12311 Account Name: JohnDoe Account Domain: Some Additional Information: Privileges -

\sAccount\sName\:\s(.*?)\    

这只是拉动两个帐户名称的一个示例。但有谁知道如何只提取第二个帐户名称?

在上面的例子中,第二个帐户名称是帐户名称:

JohnDoe

3 个答案:

答案 0 :(得分:0)

也许使用类似这样的东西:

\sAccount\sName:\s.*\sAccount\sName:\s([^\s]*)\

答案 1 :(得分:0)

这是模式:

(?ms)Account\s+Name.*?(Account\s+Name:\s+)(\w+)

但是你需要收集捕获括号。在此正则表达式中,帐户名称在组号中。 2.您使用的语言/库为您提供了一种访问捕获括号捕获文本的方法。

答案 2 :(得分:0)

对于Graylog,这是正确的正则表达式:

Account Name:.*?Account Name:(\s*(\S*))