PowerShell veya Wevtutil Kullanarak Windows Olay Günlüklerini Temizleme


Bazı durumlarda, bir bilgisayardaki veya bir sunucudaki Windows olay günlüklerindeki tüm girişleri silmek gerekir. Elbette, sistem günlüklerini Olay Görüntüleyici konsolu GUI'sinden temizleyebilirsiniz: Eventvwr.msc (temizlemek istediğiniz günlüğü sağ tıklayın ve Günlüğü Temizle'yi seçin). Ancak, Vista'dan başlayarak, Windows farklı sistem bileşenleri için birkaç düzine günlük kullanıyor ve bunların hepsini Olay Görüntüleyici'de manuel olarak temizlemek zaman alıyor. Günlükleri komut isteminden temizlemek çok daha kolaydır: PowerShell veya yerleşik konsol aracı wevtutil kullanılarak.

PowerShell ile Olay Günlüklerini Temizleme

PowerShell 3 kuruluysa (varsayılan olarak, Windows 8/Windows Server ve sonraki sürümlerde kuruludur), almak için Get-EventLog ve Clear-EventLog cmdlet'lerini kullanabilirsiniz. olay günlüklerinin listesi ve bunları temizleyin.

PowerShell konsolunu yönetici ayrıcalıklarıyla başlatın ve aşağıdaki komutu kullanarak sistemdeki tüm standart olay günlüklerinin listesini maksimum boyut ve olay sayısıyla görüntüleyin.

Get-EventLog -LogName *

Belirli olay günlüğündeki (örneğin, Sistem günlüğü) tüm girişleri temizlemek için şu komutu kullanın:

Clear-EventLog -LogName System

Sonuç olarak, bu günlüğün tüm etkinlikleri silinecek ve 104 EventId değerine ve "Sistem günlük dosyası temizlendi“.

Tüm olay günlüklerini temizlemek için günlük adlarını ardışık düzene yönlendirmeniz gerekir, ancak ne yazık ki bu yasaktır. Bu nedenle, ForEach döngüsünü kullanmamız gerekecek:

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

Böylece, tüm standart olay günlükleri temizlenecektir.

WevtUtil.exe konsol aracını kullanarak Günlükleri Temizleme

Olaylarla çalışmak için, Windows'ta uzun süredir güçlü bir komut istemi yardımcı programı olan WevtUtil.exe bulunmaktadır. Sözdizimi ilk görüş için biraz karmaşıktır. Burada, örneğin, yardımcı programların yardımını döndürür:

Sistemde kayıtlı günlüklerin listesini görüntülemek için şu komutu çalıştırın:

WevtUtil enum-logs

veya daha kısa versiyonu:

WevtUtil el

Ekranda oldukça etkileyici bir günlük listesi görüntülenecektir.

Not. Aşağıdaki komutu kullanarak kaç günlük olduğunu sayabilirsiniz: WevtUtil el |Measure-Object. Benim durumumda, Windows 10'da 1.053 farklı günlük vardı.

Belirli bir günlük hakkında ayrıntılı bilgi alabilirsiniz:

WevtUtil gl Setup

Belirli bir günlükteki olayları şu şekilde temizleyebilirsiniz:

WevtUtil cl Setup

Olayları temizlemeden önce, bir dosyaya kaydederek onları yedekleyebilirsiniz:

WevtUtil cl Setup /bu:SetupLog_Bak.evtx

Tüm günlükleri tek seferde temizlemek için Get-WinEvent PowerShell cmdlet'i kullanarak tüm günlük nesnelerini ve Wevtutil.exe'yi kullanarak bunları temizleyebilirsiniz:

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

veya

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

Not. Örneğimizde, erişim hatası nedeniyle 3 günlüğü temizleyemedim. Olay Görüntüleyiciyi kullanarak bunları temizlemeye çalışmakta fayda var.

Günlükleri standart komut istemini kullanarak da temizleyebilirsiniz:

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

İlgili makaleler