Как очистить журналы событий Windows с помощью PowerShell или Wevtutil
В некоторых случаях необходимо удалить все записи из журналов событий Windows на компьютере или сервере. Конечно, вы можете очистить системные журналы из графического интерфейса консоли просмотра событий — Eventvwr.msc (щелкните правой кнопкой мыши журнал, который хотите очистить, и выберите Очистить журнал). Однако, начиная с Vista, Windows использует несколько десятков журналов для различных компонентов системы, и очистка их всех вручную в средстве просмотра событий занимает много времени. Гораздо проще очистить журналы из командной строки: с помощью PowerShell или встроенного консольного инструмента wevtutil.
Очистка журналов событий с помощью PowerShell
Если у вас установлен PowerShell 3 (по умолчанию он установлен в Windows 8/Windows Server и выше), вы можете использовать командлеты Get-EventLog и Clear-EventLog для получения список журналов событий и очистите их.
Запустите консоль 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. В моем случае в 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 журнала из-за ошибки доступа. Стоит попробовать очистить их с помощью средства просмотра событий.
Вы также можете очистить журналы с помощью стандартной командной строки:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"





