Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Cách xóa nhật ký sự kiện Windows bằng PowerShell hoặc Wevtutil

Trong một số trường hợp, cần thiết phải xóa tất cả các mục nhập từ nhật ký sự kiện Windows trên máy tính hoặc máy chủ. Tất nhiên, bạn có thể xóa nhật ký hệ thống từ giao diện đồ họa Event Viewer — Eventvwr.msc (nhấp chuột phải vào nhật ký muốn xóa và chọn Clear Log). Tuy nhiên, kể từ Vista, Windows đã sử dụng hàng chục nhật ký cho các thành phần hệ thống khác nhau, và việc xóa thủ công tất cả chúng trong Event Viewer rất tốn thời gian. Việc xóa nhật ký từ dòng lệnh sẽ dễ dàng hơn nhiều: sử dụng PowerShell hoặc công cụ console tích hợp wevtutil.

Xóa nhật ký sự kiện bằng PowerShell

Nếu bạn đã cài đặt PowerShell 3 (mặc định được cài trong Windows 8 / Windows Server và cao hơn), bạn có thể sử dụng các cmdlet Get-EventLog và Clear-EventLog để lấy danh sách nhật ký sự kiện và xóa chúng.

Khởi động console PowerShell với quyền quản trị viên và sử dụng lệnh sau để hiển thị danh sách tất cả nhật ký sự kiện tiêu chuẩn trong hệ thống cùng với kích thước tối đa và số lượng sự kiện:

Get-EventLog –LogName *

Để xóa tất cả các mục nhập từ nhật ký sự kiện cụ thể (ví dụ: nhật ký System), sử dụng lệnh này:

Clear-EventLog –LogName System

Kết quả là tất cả sự kiện của nhật ký này sẽ bị xóa, và chỉ còn lại một sự kiện với EventId 104 và thông báo “The System log file was cleared”.

Để xóa tất cả nhật ký sự kiện, bạn phải chuyển hướng tên nhật ký qua pipeline, nhưng不幸的是 điều này bị cấm. Vì vậy, chúng ta sẽ phải sử dụng vòng lặp ForEach:

Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }

Như vậy, tất cả nhật ký sự kiện tiêu chuẩn sẽ được xóa.

Xóa nhật ký bằng công cụ console WevtUtil.exe

Để làm việc với sự kiện, từ lâu Windows đã có công cụ dòng lệnh mạnh mẽ WevtUtil.exe. Cú pháp của nó hơi phức tạp ở מבט đầu tiên. Ví dụ, lệnh sau trả về trợ giúp của tiện ích:

Để hiển thị danh sách các nhật ký đã đăng ký trong hệ thống, hãy chạy lệnh:

WevtUtil enum-logs
hoặc phiên bản rút gọn:

WevtUtil el

Một danh sách nhật ký khá ấn tượng sẽ hiển thị trên màn hình.

Lưu ý. Bạn có thể đếm số lượng nhật ký bằng lệnh: WevtUtil el | Measure-Object. Trong trường hợp của tôi, có 1.053 nhật ký khác nhau trong Windows 10.

Bạn có thể lấy thông tin chi tiết về nhật ký cụ thể:

WevtUtil gl Setup

Cách xóa sự kiện trong nhật ký cụ thể:

WevtUtil cl Setup

Trước khi xóa sự kiện, bạn có thể sao lưu chúng bằng cách lưu vào file:

WevtUtil cl Setup /bu:SetupLog_Bak.evtx

Để xóa tất cả nhật ký cùng một lúc, bạn có thể sử dụng cmdlet PowerShell Get-WinEvent để lấy tất cả đối tượng nhật ký và Wevtutil.exe để xóa chúng:

Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }

hoặc

Wevtutil el | ForEach { wevtutil cl “$_”}

Lưu ý. Trong ví dụ của tôi, không thể xóa 3 nhật ký do lỗi truy cập. Đáng để thử xóa chúng bằng Event Viewer.

Bạn cũng có thể xóa nhật ký bằng command prompt tiêu chuẩn:

for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"