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íkazuWevtUtil 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"