Поиск по сайту:

Как очистить журналы событий 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"

Статьи по данной тематике