ใน Windows Server 2003 หรือ Windows XP คุณสามารถกรอง Event ใน System Event Log Viewer ตามบัญชีผู้ใช้เฉพาะได้ง่าย หากคุณป้อน Username ที่ต้องการในฟิลด์ User ของ Log Filter แต่ใน Windows Server 2008 / Windows 7 วิธีง่ายๆ นี้ในการค้นหา Event ที่เกี่ยวข้องกับผู้ใช้เฉพาะไม่ทำงาน

ใน Windows Server 2008 ไม่มีฟิลด์ User ในการนำเสนอ Event Log มาตรฐาน ลองเพิ่มมันโดยใช้ตัวเลือกเมนู View -> Add/Remove Columns

ตอนนี้คอลัมน์ User ปรากฏในการนำเสนอ Log แต่นามของผู้ใช้ที่เริ่ม Event ไม่ได้แสดงในคอลัมน์นี้ เราเห็น N/A แทน ข้อมูลเกี่ยวกับบัญชีตอนนี้อยู่ในคำอธิบายของ Event เอง (ในค่าของ Security ID และ Account Name ในตัวอย่างนี้) จะกรอง Event ใน Log ได้อย่างไร?

เพื่อกรอง Event ตาม Username (หรือ Attribute Event อื่นๆ) ใน Windows Server 2008 หรือใหม่กว่า คุณสามารถใช้การปรับแต่ง XML Queries (XPath) ด้วยตนเอง
หมายเหตุ ก่อนหน้านี้การใช้ XPath เพื่อค้นหา Event เฉพาะใน Log ถูกพิจารณาในบทความ Running a Scheduled Task after another
ดังนั้น ให้เปิด Log ที่คุณต้องการใน Event View (ในกรณีของเราคือ Log Security) และเลือก Filter Current Log… ในเมนูบริบท
ไปที่แท็บ XML และติ๊ก Edit query manually

คัดลอกและวางโค้ดต่อไปนี้ซึ่งอนุญาตให้เลือก Event ทั้งหมดของผู้ใช้เฉพาะใน Log (แทนที่ username ด้วยชื่อบัญชีที่คุณต้องการ)
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">* [EventData[Data[@Name='subjectUsername']='username']]</Select>
</Query>
</QueryList>

บันทึกการเปลี่ยนแปลงใน Filter และดู Log เฉพาะ Event ที่เกี่ยวข้องกับบัญชีที่คุณระบุควรจะเหลืออยู่ใน Log

หากคุณต้องการ เช่น กรอง Event สำหรับผู้ใช้และ Event ID 4624 (An account was successfully logged on) และ 4625 (An account failed to log on) XPath Filter จะมีลักษณะดังนี้:
<QueryList>
<Query Id="0" Path="Security">
<Select Path="Security">*[System[(EventID=4624 or EventID=4625)]]</Select>
<Select Path="Security">* [EventData[Data[@Name='subjectUsername']='username']]</Select>
</Query>
</QueryList>