Vymazanie denníkov udalostí systému Windows pomocou PowerShell a wevtutil

V niektorých prípadoch chcete odstrániť všetky položky v denníku udalostí systému Windows na počítači alebo serveri. Čistenie systémových denníkov je samozrejme možné vykonať aj pomocou grafického modulu snap-in. -  eventvwr.msc (RMB na požadovanom protokole -> Vymazať protokol), ale od systému Windows Vista používa niekoľko desiatok protokolov pre rôzne súčasti systému a ich vymazanie z konzoly Zobrazovač udalostí bude dosť únavné. Je oveľa jednoduchšie vymazať protokoly z príkazového riadku: pomocou PowerShell alebo vstavaného pomocného programu wevtutil.

obsah:

  • Vymazanie protokolov udalostí pomocou programu PowerShell
  • Vymazanie denníkov pomocou nástroja konzoly WevtUtil.exe

Vymazanie protokolov udalostí pomocou programu PowerShell

Ak ste nainštalovali program PowerShell 3 (v predvolenom nastavení je už nainštalovaný v systéme Windows 8 / Windows Server 2012 a novších), môžete pomocou cmdlet získať zoznam protokolov a vyčistiť ich Get-EventLog a Vymazať eventlog.

Spustite konzolu PowerShell s právami správcu a pomocou nasledujúceho príkazu zobrazte zoznam všetkých klasických protokolov udalostí v systéme s ich maximálnymi veľkosťami a počtom udalostí v nich..

Get-EventLog -LogName *

Ak chcete odstrániť všetky udalosti z konkrétneho denníka udalostí (napríklad zo systémového denníka), použite príkaz:

Clear-EventLog -LogName Systém

V dôsledku toho budú všetky udalosti z tohto denníka odstránené a v protokole udalostí zostane iba jedna udalosť EventId 104 s textom “Súbor denníka systému bol vymazaný".

Ak chcete vymazať všetky protokoly udalostí, budete musieť presmerovať názvy protokolov do plynovodu, bohužiaľ je to však zakázané. Preto budeme musieť použiť slučku ForEach:

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

Týmto spôsobom budú vymazané všetky klasické denníky udalostí EventLogs..

Vymazanie denníkov pomocou nástroja konzoly WevtUtil.exe

Pre prácu s udalosťami vo Windows je už nejaký čas k dispozícii výkonný obslužný program pre príkazový riadok. wevtutil.exe. Jeho syntax je na prvý pohľad trochu komplikovaná. Tu je napríklad to, čo sa pomocná pomôcka vracia:

Ak chcete zobraziť zoznamy udalostí zaregistrovaných v systéme, spustite príkaz:

WevtUtil enum-logs

alebo kratšia možnosť:

Wevt util el

Na obrazovke sa zobrazí veľmi pôsobivý zoznam dostupných časopisov..

poznámka. Ich počet môžete vypočítať pomocou príkazu WevtUtil el | Measure Object. V mojom prípade je v systéme Windows 10 1 053 rôznych protokolov).

Podrobnejšie informácie získate v konkrétnom časopise:

WevtUtil gl Setup

Čistenie udalostí v konkrétnom denníku sa vykonáva takto:

WevtUtil cl Setup

Pred čistením môžete udalosti v denníku zálohovať ich uložením do súboru:

WevtUtil cl Setup /bu:SetupLog_Bak.evtx

Na vymazanie všetkých protokolov naraz môžete použiť rutinu Powershell dostať-WinEvent získať všetky objekty denníka a Wevtutil.exe ich vyčistiť:

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

alebo tak

Wevtutil el | ForEach wevtutil cl “$ _”

poznámka.  V našom príklade nebolo možné vymazať 3 denníky z dôvodu chyby prístupu. Obsah týchto denníkov je vhodné vyčistiť z konzoly Zobrazovač udalostí..

Čistenie protokolov je možné vykonať aj klasickým príkazovým riadkom:

pre / F "tokeny = *"% 1 v ('wevtutil.exe el') DO wevtutil.exe cl "% 1"