วิธีล้างบันทึกเหตุการณ์ของ Windows โดยใช้ PowerShell หรือ Wevtutil
ในบางกรณี จำเป็นต้องลบรายการทั้งหมดออกจากบันทึกเหตุการณ์ของ Windows บนคอมพิวเตอร์หรือเซิร์ฟเวอร์ แน่นอน คุณสามารถล้างบันทึกของระบบได้จากคอนโซลตัวแสดงเหตุการณ์ GUI— Eventvwr.msc (คลิกขวาที่บันทึกที่คุณต้องการล้างและเลือก ล้างบันทึก) อย่างไรก็ตาม เริ่มต้นด้วย Vista Windows ได้ใช้บันทึกหลายสิบรายการสำหรับส่วนประกอบต่างๆ ของระบบ และใช้เวลานานในการล้างบันทึกทั้งหมดใน Event Viewer ด้วยตนเอง การล้างบันทึกจากพรอมต์คำสั่งทำได้ง่ายกว่ามาก โดยใช้ PowerShell หรือเครื่องมือคอนโซลในตัว wevtutil
การล้างบันทึกเหตุการณ์ด้วย PowerShell
หากคุณติดตั้ง PowerShell 3 (โดยค่าเริ่มต้น จะติดตั้งใน Windows 8/Windows Server และสูงกว่า) คุณสามารถใช้ cmdlets Get-EventLog และ Clear-EventLog เพื่อรับ รายการบันทึกเหตุการณ์และล้างข้อมูลเหล่านั้น
เริ่มคอนโซล PowerShell ด้วยสิทธิ์ของผู้ดูแลระบบ และใช้คำสั่งต่อไปนี้แสดงรายการบันทึกเหตุการณ์มาตรฐานทั้งหมดในระบบที่มีขนาดสูงสุดและจำนวนเหตุการณ์
Get-EventLog -LogName *
หากต้องการล้างรายการทั้งหมดจากบันทึกเหตุการณ์เฉพาะ (เช่น บันทึกระบบ) ให้ใช้คำสั่งนี้:
Clear-EventLog -LogName Systemด้วยเหตุนี้ เหตุการณ์ทั้งหมดของบันทึกนี้จะถูกลบ และจะมีเพียงเหตุการณ์เดียวที่มี EventId 104 และข้อความ “The System log file has been cleared“.
หากต้องการล้างบันทึกเหตุการณ์ทั้งหมด คุณต้องเปลี่ยนเส้นทางชื่อบันทึกไปยังไปป์ไลน์ แต่น่าเสียดายที่ห้ามใช้ ดังนั้น เราจะต้องใช้วงจร 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หากต้องการล้างบันทึกทั้งหมดในครั้งเดียว คุณสามารถใช้ PowerShell cmdlet Get-WinEvent เพื่อรับวัตถุบันทึกทั้งหมดและ Wevtutil.exe เพื่อล้างข้อมูลเหล่านี้:
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }หรือ
Wevtutil el | ForEach { wevtutil cl “$_”}หมายเหตุ ในตัวอย่างของเรา ฉันไม่สามารถล้างบันทึก 3 รายการได้เนื่องจากข้อผิดพลาดในการเข้าถึง มันคุ้มค่าที่จะลองล้างมันโดยใช้ตัวแสดงเหตุการณ์
คุณสามารถล้างบันทึกโดยใช้พรอมต์คำสั่งมาตรฐานได้เช่นกัน:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"





