按使用者和登錄類型過濾安全日誌
我被要求查明使用者在上週登錄系統的時間。現在 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
我將 LogonType 行更新為以下內容:
EventData[Data[@Name='LogonType'] and (Data='2' or Data='7')]
這應該擷取工作站登錄以及工作站解鎖,但我仍然一無所獲。然後我修改它以搜尋其他登錄類型,如 3 或 8,它發現很多。這讓我相信查詢可以正常工作,但由於某種原因,事件日誌中沒有登錄類型等於 2 的條目,這對我來說毫無意義。是否可以關閉此功能?
您走在正確的軌道上 - 您的查詢中的錯誤之一是“登錄類型”中的空格,它應該只是“登錄類型”。
我在下面粘貼了一個查詢,我剛剛驗證了作品。它有點簡化,但你明白了。它向您顯示來自使用者“john.doe”的所有 4624 個登錄類型為 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>
您可以在此處的事件查看器中找到有關 XML 查詢的更多資訊:http: //blogs.technet.com/b/askds/archive/2011/09/26/advanced-xml-filtering-in-the-windows-event-查看器.aspx。
您可以使用 wevtutil.exe 從命令行查詢事件:http ://technet.microsoft.com/en-us/magazine/dd310329.aspx 。