У деяких випадках потрібно видалити на комп'ютері або сервері всі записи в журналі подій Windows. Звичайно, очищення системних журналів, можна виконати і з графічної оснащення перегляду подій - Eventvwr.msc (ПКМ по потрібному журналу -> Clear Log), однак починаючи з Vista, в Windows використовується кілька десятків журналів для різних компонентів системи, і очищати їх все з консолі Event Viewer буде досить утомливо. Набагато простіше очистити логи з командного рядка: за допомогою PowerShell або вбудованої утиліти wevtutil.
зміст:
- Очищення журналів подій за допомогою PowerShell
- Очищення журналів за допомогою консольної утиліти WevtUtil.exe
Очищення журналів подій за допомогою PowerShell
У тому випадку, якщо у вас встановлений PowerShell 3 (за замовчуванням вже встановлений в Windows 8 / Windows Server 2012 і вище), для отримання списку журналів і їх очищення можна скористатися Командлети Get-EventLog і Clear-EventLog.
Запустіть консоль PowerShell з правами адміністратора і за допомогою наступної команди виведіть список всіх наявних в системі класичних журналів подій з їх максимальними розмірами і кількістю подій в них.
Get-EventLog -LogName *
Для видалення всіх подій з конкретного журналу подій (наприклад, журналу System), скористайтеся командою:
Clear-EventLog -LogName System
В результаті, всі події з цього журналу будуть видалені, а в журналі події залишиться тільки одна подія EventId 104 з текстом "The System log file was cleared".
Для очищення всіх журналів подій потрібно б перенаправити імена журналів в конвеєр, однак, на жаль це заборонено. Тому нам доведеться скористатися циклом ForEach:
Get-EventLog -LogName * | ForEach Clear-EventLog $ _. Log
Таким чином, будуть очищені всі класичні журнали EventLogs.
Очищення журналів за допомогою консольної утиліти WevtUtil.exe
Для роботи з подіями в Windows вже досить давно є в наявності потужна утиліта командного рядка WevtUtil.exe. Її синтаксис трохи важкувато на перший погляд. Ось, наприклад, що повертає help утиліти:
Щоб вивести список зареєстрованих в системі журналів подій, виконайте команду:
WevtUtil enum-logs
або коротший варіант:
WevtUtil el
На екрані відобразиться досить значний список наявних журналів.
Примітка. Порахувати їх кількість можна за допомогою командиWevtUtil el | Measure-Object
. У моєму випадку, в Windows 10 налічується 1053 різних журналів).Можна отримати більш детальну інформацію по конкретному журналу:
WevtUtil gl Setup
Очищення подій в конкретному журналі виконується так:
WevtUtil cl Setup
Перед очищенням можна створити резервну копію подій в журналі, зберігши їх у файл:
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
Щоб очистити відразу всі журнали, можна скористатися Командлети Powershell Get-WinEvent для отримання всіх об'єктів журналів і Wevtutil.exe для їх очищення:
Get-WinEvent -ListLog * -Force | % Wevtutil.exe cl $ _. LogName
або так
Wevtutil el | ForEach wevtutil cl "$ _"
Примітка. У нашому прикладі не вдалося очистити 3 журналу через помилку доступу. Варто спробувати очистити вміст цих журналів з консолі Event Viewer.
Очищення журналів може бути виконана і з класичної командного рядка:
for / F "tokens = *"% 1 in ( 'wevtutil.exe el') DO wevtutil.exe cl "% 1"