คำตอบอื่น ๆ ครอบคลุมเหตุผลที่อยู่เบื้องหลัง - สำหรับระบบที่ทันสมัยซึ่งส่วนใหญ่รักษาเวลาในการโหลดภายใน GUI ของตัวแสดงเหตุการณ์ การคัดลอกบันทึกปัจจุบันไปยังตำแหน่งที่ได้รับการสำรองข้อมูลแล้วล้างข้อมูลด้วยก็ดีเช่นกัน
สำหรับการแยกวิเคราะห์ไฟล์บันทึกขนาดใหญ่ที่สร้างขึ้นมามีอยู่สองตัวเลือกที่ดีเกิดขึ้น:
1) แยกวิเคราะห์บันทึกเร็วกว่า GUI ปัจจุบันสามารถจัดการหรือ 2) แยกบันทึกเป็นไฟล์แยก
ฉันแน่ใจว่ามีสาธารณูปโภคที่พร้อมใช้งานได้ง่ายสำหรับ 2) ดังนั้นฉันจะเน้นที่ 1)
ประการแรก Powershell มี cmdlet ที่ยอดเยี่ยมสำหรับฟังก์ชั่นนี้เรียกว่า 'get-winevent' ประสิทธิภาพที่เร็วที่สุดที่ฉันเคยเห็นเกี่ยวข้องกับการใช้ตารางแฮช นี่คือตัวอย่างที่ได้รับเหตุการณ์ทั้งหมดในบันทึกการรักษาความปลอดภัยเกี่ยวกับผู้ใช้เฉพาะจากวันสุดท้าย:
$timeframe = (get-date) - (new-timespan -day 1)
$userevt = Get-WinEvent -ComputerName <specify> -FilterHashTable @{LogName='Security'; Data='<enter username here>'; StartTime=$timeframe}
$ userevt เป็นชุดของเหตุการณ์ คุณสามารถไพพ์ผ่านไปยังจัดรูปแบบรายการเพื่ออ่านเหตุการณ์จำนวนน้อยได้ง่ายขึ้นอยู่กับจำนวนการแข่งขัน สำหรับหมายเลขกลางให้ทำเช่นเดียวกัน แต่เปลี่ยนเส้นทางผลลัพธ์เป็นไฟล์:
$userevt | format-list > <outputfile>.txt
สำหรับจำนวนมากให้เริ่มการกรอง (เช่นคุณต้องการให้คอมพิวเตอร์ผู้โทรเข้าใช้สำหรับเหตุการณ์ล็อคเอาท์กับผู้ใช้ที่เราได้รับด้านบน):
$userevt | %{if ($_.message -match "Caller Computer .*") {$matches[0]}}
นี่จะแสดงผลลัพธ์บรรทัดเดียวสำหรับแต่ละเหตุการณ์การปิด กระบวนการข้างต้นโดยทั่วไปใช้เวลา 1-4 นาทีสำหรับบันทึก 4GB บน 2008 R2
ประการที่สองโดยเฉพาะอย่างยิ่งสำหรับเครื่อง 2003 ที่คุณอาจต้องจัดการคุณสามารถคลิกขวาที่ไฟล์บันทึกเฉพาะในบานหน้าต่างด้านซ้ายในตัวแสดงเหตุการณ์และเลือก 'บันทึกไฟล์บันทึกเป็น'
หากคุณกำลังเรียกใช้ตัวแสดงเหตุการณ์บนเครื่องโลคัลคุณสามารถบันทึกไฟล์. evt ที่สามารถแยกวิเคราะห์โดย get-winevent
อีกวิธีหนึ่งคุณสามารถบันทึกข้อความหรือไฟล์ CSV (ฉันค้นหา CSV ได้ง่ายขึ้น) ซึ่งสามารถแยกวิเคราะห์โดยโปรแกรมอรรถประโยชน์บรรทัดคำสั่งที่เหมาะสมเช่น grep หรือ findstr หรือบางโปรแกรมเช่น Notepad ++