ในบางกรณี จำเป็นต้องลบรายการทั้งหมดออกจากบันทึกเหตุการณ์ของ Windows บนคอมพิวเตอร์หรือเซิร์ฟเวอร์ แน่นอน คุณสามารถล้างบันทึกของระบบจากคอนโซลตัวแสดงเหตุการณ์ GUI— Eventvwr.msc (คลิกขวาที่บันทึกที่คุณต้องการล้างและเลือก ล้างบันทึก ). อย่างไรก็ตาม ตั้งแต่ Vista เป็นต้นไป Windows ได้ใช้บันทึกหลายสิบรายการสำหรับส่วนประกอบระบบที่แตกต่างกัน และการล้างข้อมูลทั้งหมดด้วยตนเองใน Event Viewer นั้นใช้เวลานาน การล้างบันทึกจากพรอมต์คำสั่งทำได้ง่ายกว่ามาก:ใช้ PowerShell หรือเครื่องมือคอนโซลในตัว wevtutil .
การล้างบันทึกเหตุการณ์ด้วย PowerShell
หากคุณติดตั้ง PowerShell 3 (โดยค่าเริ่มต้น จะติดตั้งใน Windows 8 / Windows Server ขึ้นไป) คุณสามารถใช้ Get-EventLog และ ล้างบันทึกเหตุการณ์ cmdlets เพื่อรับรายการบันทึกเหตุการณ์และล้างข้อมูลเหล่านั้น
เริ่มคอนโซล PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ และใช้คำสั่งต่อไปนี้แสดงรายการบันทึกเหตุการณ์มาตรฐานทั้งหมดในระบบโดยมีขนาดสูงสุดและจำนวนเหตุการณ์
Get-EventLog –LogName *
หากต้องการล้างรายการทั้งหมดจากบันทึกเหตุการณ์เฉพาะ (เช่น บันทึกระบบ) ให้ใช้คำสั่งนี้:
Clear-EventLog –LogName System
ด้วยเหตุนี้ กิจกรรมทั้งหมดของบันทึกนี้จะถูกลบ และจะมีเพียงกิจกรรมเดียวที่มี EventId 104 และข้อความ “ไฟล์บันทึกของระบบถูกล้าง “ .
ในการล้างบันทึกเหตุการณ์ทั้งหมด คุณต้องเปลี่ยนเส้นทางชื่อบันทึกไปยังไปป์ไลน์ แต่น่าเสียดายที่มันถูกห้าม ดังนั้น เราจะต้องใช้วงจร ForEach:
Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }
ดังนั้น บันทึกเหตุการณ์มาตรฐานทั้งหมดจะถูกล้าง
การล้างบันทึกโดยใช้เครื่องมือคอนโซล WevtUtil.exe
ในการทำงานกับเหตุการณ์ต่างๆ เป็นเวลานานใน Windows มียูทิลิตี้พร้อมรับคำสั่งที่มีประสิทธิภาพ WevtUtil.exe . ไวยากรณ์ของมันค่อนข้างซับซ้อนในครั้งแรก ตัวอย่างเช่น ที่ส่งคืนความช่วยเหลือด้านสาธารณูปโภค:
หากต้องการแสดงรายการบันทึกที่ลงทะเบียนในระบบ ให้รันคำสั่งนี้:
WevtUtil enum-logs
หรือเวอร์ชันที่สั้นกว่า:
WevtUtil el
รายการบันทึกที่น่าประทับใจจะปรากฏขึ้นบนหน้าจอ
หมายเหตุ . คุณสามารถนับจำนวนบันทึกได้โดยใช้คำสั่งต่อไปนี้:WevtUtil el |Measure-Object ในกรณีของฉันมีบันทึกที่แตกต่างกัน 1,053 รายการใน Windows 10
คุณสามารถรับข้อมูลโดยละเอียดเกี่ยวกับบันทึกเฉพาะ:
WevtUtil gl Setup
นี่คือวิธีที่คุณล้างเหตุการณ์ในบันทึกเฉพาะ:
WevtUtil cl Setup
ก่อนที่คุณจะล้างกิจกรรม คุณสามารถสำรองข้อมูลได้โดยบันทึกเป็นไฟล์:
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
หากต้องการล้างบันทึกทั้งหมดในครั้งเดียว คุณสามารถใช้ Get-WinEvent PowerShell cmdlet เพื่อรับวัตถุบันทึกทั้งหมดและ Wevtutil.exe เพื่อล้าง:
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }
หรือ
Wevtutil el | ForEach { wevtutil cl “$_”}
คุณสามารถล้างบันทึกโดยใช้พรอมต์คำสั่งมาตรฐานเช่นกัน:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"