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

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

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

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

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

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

Get-EventLog –LogName *

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

Clear-EventLog –LogName System

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

Очистка журналов фиксируется событием EventId 104 с текстом «The System log file was cleared»Для очистки всех журналов событий нужно бы перенаправить имена журналов в конвейер, однако, к сожалению это запрещено. Поэтому нам придется воспользоваться циклом ForEach:

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

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

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

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

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

WevtUtil enum-logs

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

WevtUtil el

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

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

WevtUtil el - вывод всех доступных журналов в WindowsМожно получить более подробную информацию по конкретному журналу:

WevtUtil gl Setup

WevtUtil gl Setup- подробная информацйия о параметрах журналаОчистка событий в конкретном журнале выполняется так:

WevtUtil cl Setup

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

WevtUtil cl Setup /bu:SetupLog_Bak.evtx

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

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

или так

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

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

Wevtutil полная очистка журналов событий Windows

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

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

(Пока оценок нет)
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x