Merhaba, bu yazımda sizlere Windows event viewer işlemlerini komut satırından nasıl gerçekleştireceğimizi anlatacağım. Windows Event Viewer (Olay Görüntüleyicisi) üzerinde gerçekleştirdiğiniz tüm işlemleri, komut istemi (CMD) ve PowerShell üzerinden de güçlü komutlarla yapabilirsiniz. Bu, özellikle otomasyon ve uzaktan yönetim senaryolarında büyük kolaylık sağlar.
İki temel komut satırı aracı bu işlemleri yapmanıza olanak tanımaktadır.
- exe: Windows’un yerleşik, klasik komut satırı aracıdır.
- PowerShell (Get-WinEvent): Daha modern, esnek ve güçlü bir arayüz sunan PowerShell cmdlet’idir.
Aşağıda, Event Viewer’da sıkça yapılan işlemlerin bu iki araçla nasıl gerçekleştirilebileceğini sıralayacağım.
Olay Günlüklerini Listeleme
Bilgisayardaki tüm olay günlüklerinin bir listesini almak için kullanılır.
wevtutil.exe ile
wevtutil el
wevtutil enum-logs

PowerShell ile
Get-WinEvent -ListLog *
Belirli Bir Olay Günlüğünün İçeriğini Görüntüleme
“Application”, “System”, “Security” gibi belirli bir günlüğün içindeki olayları sorgulamak için kullanılır.
wevtutil.exe ile (Sistem günlüğündeki son 5 olayı gösterme)
wevtutil qe System /c:5 /rd:true /f:text

qe: Query Events (Olayları Sorgula)
/c:5: En fazla 5 olay göster.
/rd:true: Olayları en yeniden eskiye doğru sırala.
/f:text: Çıktıyı metin formatında göster.
PowerShell ile (Uygulama günlüğündeki son 5 olayı gösterme)
Get-WinEvent -LogName Application -MaxEvents 5
Olayları Filtreleme
Belirli bir olay kimliği (Event ID), seviyesi (Level) veya zaman aralığına göre olayları filtreleyebilirsiniz.
wevtutil.exe ile (Güvenlik günlüğünde, Olay Kimliği 4624 olan olayları sorgulama)
wevtutil qe Security /q:”*[System[(EventID=4624)]]” /c:10
/q: XPath formatında bir sorgu belirtir.
PowerShell ile (Güvenlik günlüğünde, Olay Kimliği 4624 olan olayları sorgulama)
Get-WinEvent -FilterHashtable @{LogName=’Security’; Id=4624} -MaxEvents 10
-FilterHashtable parametresi, birden çok kriteri (LogName, Id, Level, StartTime, EndTime vb.) kolayca belirtmenizi sağlar.
Olay Günlüklerini Dışa Aktarma (Export)
Bir olay günlüğünü daha sonra incelemek veya arşivlemek üzere bir dosyaya kaydetmek için kullanılır.
exe ile (Sistem günlüğünü “C:\Logs\sistem_log.evtx” dosyasına aktarma)
wevtutil epl System C:\Logs\sistem_log.evtx
epl: Export Log (Günlüğü Dışa Aktar)
PowerShell ile (Filtrelenmiş Uygulama günlüklerini bir CSV dosyasına aktarma)
Get-WinEvent -FilterHashtable @{LogName=’Application’; Level=2} | Export-Csv -Path C:\Logs\uygulama_hatalari.csv -NoTypeInformation
Bu komut, Uygulama günlüğündeki sadece “Hata” (Level=2) seviyesindeki olayları bulur ve bunları bir CSV dosyasına aktarır.
Olay Günlüklerini Temizleme
Bir olay günlüğünün içeriğini tamamen silmek için kullanılır. Bu işlem geri alınamaz, bu nedenle dikkatli kullanılmalıdır.
exe ile (Güvenlik günlüğünü temizleme)
wevtutil cl Security
cl: Clear Log (Günlüğü Temizle)
Bu komutu çalıştırmadan önce bir yedekleme yapmanız istenebilir. /bu parametresi ile yedekleme yapabilirsiniz: wevtutil cl Security /bu:C:\Logs\guvenlik_yedek.evtx
PowerShell ile (Uygulama günlüğünü temizleme)
Clear-EventLog -LogName Application
Bu komut da onay isteyecektir. Onay istemeden çalıştırmak için -Force parametresi eklenebilir.
Olay Günlüğü Özelliklerini Yapılandırma
Bir günlüğün maksimum boyutunu, dolu olduğunda ne yapacağını (üzerine yazma veya arşivleme) gibi ayarları değiştirmek için kullanılır.
wevtutil.exe ile (Uygulama günlüğünün maksimum boyutunu 20MB olarak ayarlama)
wevtutil sl Application /ms:20971520
sl: Set Log (Günlüğü Ayarla)
/ms: Değeri byte cinsinden alır (20 * 1024 * 1024 = 20971520).
PowerShell’de bu işlemi yapmak daha dolaylıdır ve genellikle .NET sınıflarının kullanılmasını gerektirir:
- $log = New-Object System.Diagnostics.Eventing.Reader.EventLogConfiguration(“Application”)
- $log.MaximumSizeInBytes = 20971520
- $log.SaveChanges()
Exe ve Powershell Karşılaştırma
| İşlem | wevtutil.exe | PowerShell (Get-WinEvent) |
| Kullanım Kolaylığı | Daha basit, temel komutlar | Daha karmaşık ama esnek ve güçlü filtreleme |
| Filtreleme | XPath sorguları ile güçlü ama karmaşık | -FilterHashtable ile çok daha sezgisel |
| Çıktı Formatlama | Metin, XML | Nesne tabanlı, Format-Table, Export-Csv gibi cmdlet’lerle kolayca formatlanabilir |
| Otomasyon | Betiklerde kullanılabilir | PowerShell betiklerinin gücüyle tam entegre |
Genel olarak, hızlı ve basit sorgular için wevtutil.exe yeterli olabilirken, karmaşık filtreleme, veri analizi ve otomasyon gerektiren durumlar için PowerShell ve Get-WinEvent cmdlet’i şiddetle tavsiye edilmektedir. Bu yazımda sizlere Windows event viewer işlemlerini komut satırından nasıl gerçekleştireceğimizi anlattım. Faydalı olması dileğiyle.