在Windows事件檢視器中過濾出電腦的登入紀錄(包含遠端連線)
因為一些資安的需求,需要在自己的電腦中的Windows事件檢視器中,快速地找出電腦登入的紀錄(包括遠端桌面連線的紀錄),在網路搜尋一下果然有人遇過這方面的需求,將各路的指令整併後列於下方,供給有需要的人參考。
找出Windows系統中的登入紀錄
Step 1. 首先要知道,所有有關於Windows的登入紀錄,都被記錄在「Windows紀錄」>「安全性」之中。
Step 2. 到「自訂檢視」中,右鍵選擇「建立自訂檢視」。
Step 3. 點選「依紀錄」>僅勾選「Windows紀錄」>「安全性」。
Step 4. 切換到XML頁籤,勾選「手動編輯查詢」,貼上下列XML字串(採 XPath 語法):
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">
*[
System[(EventID='4624')]
and
EventData[Data[@Name='TargetUserName']='電腦登入的帳號名稱']
and
(
EventData[Data[@Name='LogonType']='2']
or
EventData[Data[@Name='LogonType']='7']
or
EventData[Data[@Name='LogonType']='10']
or
System[(Keywords!='0x8020000000000000')]
)
]
</Select>
</Query>
</QueryList>
補充說明
- 這個XPath語法只有支援到1.0(支援度有夠爛),寫起來其實限制多多,詳請參考XPath 1.0 limitations。
- 為了證明第一點,這裡有一篇微軟員工自己發表的文章(Advanced XML filtering in the Windows Event Viewer),裡面有詳細講一些filtering思考路徑,但其實語法問題多多,拉到文章最下方可以看到有網友吐槽留言。
- LogonType 2:正常互動登入、LogonType 7:解除鎖定登入、LogonType 10:遠端桌面登入