Windows Event Viewer İşlemlerini Komut Satırından Gerçekleştirme

Windows Event Viewer İşlemlerini Komut Satırından Gerçekleştirme

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

List Event 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

Last 5 Event

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.


 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir