我被要求了解用户在上个星期何时login系统。 现在,Windows中的审计日志应该包含我需要的所有信息。 我想,如果我search与特定的AD用户和logintypes2(交互式login)的事件ID 4624(login成功),它应该给我的信息,我需要,但对于我的生活我无法弄清楚如何实际过滤事件日志来获取这个信息。 是否可以在事件查看器内,或者你是否需要使用外部工具来parsing它到这个级别?
我发现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天,但其余的没有工作。
任何人都可以帮助我吗?
编辑
幸运卢克的build议,我一直在进步。 下面是我目前的查询,但我将解释它不返回任何结果。
<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
我更新LogonType行到以下内容:
EventData[Data[@Name='LogonType'] and (Data='2' or Data='7')]
这应该捕捉工作站login以及工作站解锁,但我什么也没有得到。 然后,我修改它来search其他logintypes,如3或8,它发现很多。 这使我相信,查询工作正常,但出于某种原因没有logintypes等于2的事件日志中的条目,这对我来说是没有意义的。 有可能把这个关掉吗?
你在正确的轨道上 – 你的查询中的错误之一是“logintypes”中的空间,它应该只是“logintypes”。
我粘贴了一个查询,下面我刚刚validation了作品。 这有点简单,但你明白了。 它向用户显示来自用户“john.doe”的所有4624个logintypes为2的事件。
<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>
您可以在这里的事件查看器中find更多关于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。
我发现这个问题,不得不做一些工作来parsing从接受的答案和问题更新的内容,以获得function的解决scheme。 我想我会发布一个完整的,工作查询语法在这里供将来参考:
<QueryList> <Query Id="0" Path="Security"> <Select Path="Security"> *[System[(EventID=4624) and TimeCreated[timediff(@SystemTime) <= 2592000000]] and EventData[Data[@Name='TargetUserName'] and (Data='john.doe')] and EventData[Data[@Name='LogonType'] and (Data='10')]] </Select> </Query> </QueryList>
上面的查询应该按照以下参数来缩小事件的范围:
您可以通过在上面的代码中更改(Data='10')
来更改filter中的LogonTypes。 例如,你可能想要做(Data='2')
或(Data='10 or Data='2')
。