Mõnel juhul on vaja kustutada kõik kirjed Windowsi sündmuste logidest arvutis või serveris. Muidugi saate sündmustevaaturi konsooli GUI-st süsteemilogid kustutada. Eventvwr.msc (paremklõpsake logil, mida soovite kustutada, ja valige Tühjenda logi). Kuid alates Vistast on Windows kasutanud erinevate süsteemikomponentide jaoks mitukümmend logi ja nende kõigi käsitsi kustutamine sündmustevaaturis on aeganõudev. Logide kustutamine käsurealt on palju lihtsam: using PowerShell või sisseehitatud konsoolitööriista wevtutil.
Sisu:
- Sündmuste logide kustutamine PowerShelli abil
- Logide tühjendamine konsoolitööriista WevtUtil.exe abil
Sündmuste logide kustutamine PowerShelli abil
Kui teil on installitud PowerShell 3 (vaikimisi on see installitud opsüsteemi Windows 8 / Windows Server ja uuematesse versioonidesse), saate Hangi sündmuselogi ja Tühjenda sündmustelogi cmdlet, et saada sündmuste logide loend ja need kustutada.
Käivitage PowerShelli konsool administraatoriõigustega ja kuvage järgmise käsu abil kõigi süsteemi standardsete sündmuste logide loend koos maksimaalse suuruse ja sündmuste arvuga.
Get-EventLog –LogName *
Konkreetse sündmuste logi (näiteks süsteemi logi) kõigi kirjete kustutamiseks kasutage järgmist käsku:
Clear-EventLog –LogName System
Selle tulemusena kustutatakse kõik selle logi sündmused ja sündmuse ID-ga on ainult üks sündmus 104 ja sõnum "Süsteemi logifail kustutati“.
Kõigi sündmuste logide kustutamiseks peate logide nimed torusse suunama, kuid kahjuks on see keelatud. Seega peame kasutama ForEachi tsüklit:
Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }
Seega kustutatakse kõik standardsed sündmuste logid.
Logide tühjendamine konsoolitööriista WevtUtil.exe abil
Sündmustega töötamiseks on Windowsis pikka aega olnud võimas käsurea utiliit WevtUtil.exe. Selle süntaks on esmapilgul pisut keeruline. Näiteks tagastab see utiliitide abi:
Süsteemis registreeritud logide loendi kuvamiseks käivitage järgmine käsk:
WevtUtil enum-logs
või selle lühem versioon:
WevtUtil el
Ekraanile kuvatakse üsna muljetavaldav logide loend.
Märge. Logide arvu saate lugeda järgmise käsuga: WevtUtil el |Measure-Object. Minu puhul oli Windows 10-s 1053 erinevat logi.
Konkreetse logi kohta saate üksikasjalikku teavet:
WevtUtil gl Setup
Konkreetses logis sündmuste kustutamiseks tehke järgmist.
WevtUtil cl Setup
Enne sündmuste kustutamist saate need varundada, salvestades faili.
WevtUtil cl Setup /bu: SetupLog_Bak.evtx
Kõigi logide korraga kustutamiseks võite kasutada Get-WinEvent PowerShelli cmdlet kõigi logiobjektide hankimiseks ja Wevtutil.exe nende kustutamiseks:
Get-WinEvent -ListLog * -Force | % { Wevtutil.exe cl $_.LogName }
või
Wevtutil el | ForEach { wevtutil cl “$_”}
Märge. Meie näites ei saanud ma juurdepääsuvea tõttu 3 logi kustutada. Tasub proovida neid sündmustevaaturi abil tühjendada.
Logid saate tühjendada ka tavalise käsuviiba abil:
for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"