Заметки сисадмина » Очистка журналов событий Windows с помощью PowerShell

Заметки сисадмина о интересных вещах из мира IT, инструкции и рецензии. Настраиваем Компьютеры/Сервера/1С/SIP-телефонию в Москве

Очистка журналов событий Windows с помощью PowerShell

В некоторых случаях требуется удалить на компьютере или сервере все записи в журнале событий Windows.  Конечно, очистку системных журналов, можно выполнить и из графической оснастки просмотра событий —  Eventvwr.msc (ПКМ по нужному журналу ->Clear Log), однако начиная с Vista, в Windows используется несколько десятков журналов для различных компонентов системы, и очищать их все из консоли Event Viewer будет довольно утомительно. Гораздо проще очистить логи из командной строки: с помощью PowerShell или встроенной утилиты wevtutil.

Очистка журналов событий с помощью PowerShell

В том случае, если у вас установлен PowerShell 3 (по умолчанию уже установлен в Windows 8 / Windows Server 2012 и выше), для получения списка журналов и их очистки можно воспользоваться командлетами Get-EventLog и Clear-EventLog.

Запустите консоль PowerShell с правами администратора и с помощью следующей команды выведите список всех имеющихся в системе классических журналов событий с их максимальными размерами и количеством событий в них.

Для удаления всех событий из конкретного журнала событий (например, журнала System), воспользуйтесь командой:

В результате, все события из этого журнала будут удалены, а в журнале события останется только одно событие EventId 104 с текстом «The System log file was cleared».

Для очистки всех журналов событий нужно бы перенаправить имена журналов в конвейер, однако, к сожалению это запрещено. Поэтому нам придется воспользоваться циклом ForEach:

Таким образом, будут очищены все классические журналы EventLogs.

Очистка журналов с помощью консольной утилиты WevtUtil.exe

Для работы с событиями в Windows уже довольно давно имеется в наличии мощная утилита командой строки WevtUtil.exe. Ее синтаксис немного сложноват на первый взгляд. Вот, к примеру, что возвращает help утилиты:

Чтобы вывести список зарегистрированных в системе журналов событий, выполните команду:

или более короткий вариант:

На экране отобразится довольно внушительный список имеющихся журналов.
Примечание. Посчитать их количество можно с помощью команды WevtUtil el |Measure-Object. В моем случае, в Windows 10 насчитывается 1053 различных журналов).

Можно получить более подробную информацию по конкретному журналу:

Очистка событий в конкретном журнале выполняется так:

Перед очисткой можно создать  резервную копию событий в журнале, сохранив их в файл:

Чтобы очистить сразу все журналы, можно воспользоваться командлетом Powershell Get—WinEvent для получения всех объектов журналов и Wevtutil.exe для их очистки:

или так

Примечание.  В нашем примере не удалось очистить 3 журнала из-за ошибки доступа. Стоит попробовать очистить содержимое этих журналов из консоли Event Viewer.

Очистка журналов может быть выполнена и из классической командной строки:

Leave a Reply