我被要求了解用户在上周登录系统的时间.现在
Windows中的审核日志应该包含我需要的所有信息.我想如果我用特定的AD用户和登录类型2(交互式登录)搜索事件ID 4624(登录成功)它应该给我我需要的信息,但是对于我的生活我无法弄清楚如何实际过滤事件日志以获取此信息.是否可以在事件查看器内部或者您是否需要使用外部工具将其解析到此级别?
我发现http://nerdsknowbest.blogspot.com.au/2013/03/filter-security-event-logs-by-user-in.html似乎是我需要的一部分.我稍微修改了它,只给了我最后7天的价值.下面是我试过的XML.
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security">*[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) <= 604800000]]]</Select> <Select Path="Security">*[EventData[Data[@Name='logon Type']='2']]</Select> <Select Path="Security">*[EventData[Data[@Name='subjectUsername']='Domain\Username']]</Select> </Query> </QueryList>
它只给了我最后7天,但其余部分没有用.
任何人都可以帮我这个吗?
编辑
感谢Lucky Luke的建议我一直在进步.以下是我当前的查询,虽然我将解释它没有返回任何结果.
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[(EventID='4624')] and System[TimeCreated[timediff(@SystemTime) <= 604800000]] and EventData[Data[@Name='TargetUserName']='john.doe'] and EventData[Data[@Name='logonType']='2'] ] </Select> </Query> </QueryList>
正如我所提到的,它没有返回任何结果,所以我一直在搞乱它.我可以让它正确生成结果,直到我添加logonType行.之后,它不会返回任何结果.知道为什么会这样吗?
编辑2
EventData[Data[@Name='logonType'] and (Data='2' or Data='7')]
这应该捕获工作站登录以及工作站解锁,但我仍然得不到任何结果.然后我修改它以搜索其他很多的登录类型,如3或8.这使我相信查询正常工作,但由于某种原因,事件日志中没有条目,登录类型等于2,这对我没有意义.是否可以关闭它?
你走在正确的轨道上 – 你的查询中的一个错误是’登录类型’中的空格,它应该只是’logonType’.
我在下面粘贴了一个查询,我刚刚验证了作品.它有点简化,但你明白了.它向用户’john.doe’显示登录类型为2的所有4624个事件.
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[ EventData[Data[@Name='logonType']='2'] and EventData[Data[@Name='TargetUserName']='john.doe'] and System[(EventID='4624')] ] </Select> </Query> </QueryList>
您可以在此处的事件查看器中找到有关XML查询的更多信息:http://blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event-viewer.aspx.
您可以使用wevtutil.exe:http://technet.microsoft.com/en-us/magazine/dd310329.aspx从命令行查询事件.