V některých případech chcete odstranit všechny položky v protokolu událostí systému Windows na počítači nebo serveru. Čištění systémových protokolů lze samozřejmě provést také pomocí grafického modulu snap-in. - Eventvwr.msc (RMB na požadovaném protokolu -> Vymazat protokol), ale počínaje systémem Vista používá Windows několik desítek protokolů pro různé součásti systému a jejich vymazání z konzoly Prohlížeč událostí bude docela únavné. Je mnohem snazší vymazat protokoly z příkazového řádku: pomocí PowerShell nebo vestavěného nástroje wevtutil.
Obsah:
- Vymazání protokolů událostí pomocí PowerShell
- Vymazání protokolů pomocí obslužného programu konzoly WevtUtil.exe
Vymazání protokolů událostí pomocí PowerShell
Pokud máte nainstalovaný PowerShell 3 (ve výchozím nastavení je již nainstalován ve Windows 8 / Windows Server 2012 a vyšších), můžete pomocí cmdlet získat seznam protokolů a vyčistit je Get-eventlog a Vymazat eventlog.
Spusťte konzolu PowerShell s právy správce a pomocí následujícího příkazu vypište všechny klasické protokoly událostí v systému s jejich maximální velikostí a počtem událostí v nich.
Get-EventLog -LogName *
Chcete-li odstranit všechny události z konkrétního protokolu událostí (například ze systémového protokolu), použijte příkaz:
Clear-EventLog -LogName Systém
V důsledku toho budou všechny události z tohoto protokolu odstraněny a v protokolu událostí zůstane pouze jedna událost EventId 104 s textem “Soubor systémového protokolu byl vymazán".
Chcete-li vymazat všechny protokoly událostí, musíte přesměrovat názvy protokolů do potrubí, bohužel je to však zakázáno. Proto budeme muset použít smyčku ForEach:
Get-EventLog -LogName * | ForEach Clear-EventLog $ _. Log
Tímto způsobem budou vymazány všechny klasické protokoly EventLogs..
Vymazání protokolů pomocí obslužného programu konzoly WevtUtil.exe
Pro práci s událostmi ve Windows je již nějaký čas k dispozici výkonný nástroj příkazového řádku. Wevtutil.exe. Jeho syntax je na první pohled trochu komplikovaná. Zde je například to, co se pomocná pomoc vrací:
Chcete-li zobrazit seznamy událostí zaregistrované v systému, spusťte příkaz:
WevtUtil enum-logs
nebo kratší možnost:
Wevt využívá el
Na obrazovce se zobrazí docela působivý seznam dostupných časopisů..
Poznámka:. Jejich počet můžete vypočítat pomocí příkazuWevtUtil el | Measure Object
. V mém případě je v systému Windows 10 1005 různých protokolů).Podrobnější informace získáte v konkrétním časopise:
WevtUtil gl Setup
Čištění událostí v konkrétním protokolu se provádí následujícím způsobem:
WevtUtil cl Setup
Před čištěním můžete události v protokolu zálohovat jejich uložením do souboru:
WevtUtil cl Setup /bu:SetupLog_Bak.evtx
Chcete-li vymazat všechny protokoly najednou, můžete použít rutinu Powershell Jdi-WinEvent získat všechny objekty protokolu a Wevtutil.exe je vyčistit:
Get-WinEvent -ListLog * -Force | % Wevtutil.exe cl $ _. LogName
nebo tak
Wevtutil el | ForEach wevtutil cl „$ _“
Poznámka:. V našem příkladu nebylo možné vymazat 3 protokoly z důvodu chyby přístupu. Obsah těchto protokolů je vhodné z konzoly Prohlížeč událostí vymazat..
Čištění protokolu lze také provést z klasické příkazové řádky:
pro / F "tokeny = *"% 1 v ('wevtutil.exe el') DO wevtutil.exe cl "% 1"