PowerShell ile Event Log Yönetimi

3 Min Read
PowerShell event log yönetimi

PowerShell Event Log Yönetimi Nedir?

PowerShell event log yönetimi, Windows sistemlerinde oluşan olay kayıtlarını (Event Logs) toplamak, analiz etmek, yedeklemek veya temizlemek için kullanılır.
Bu yöntem, özellikle sunucu izleme, güvenlik analizi ve otomatik bakım işlemleri için büyük kolaylık sağlar.

PowerShell’in sunduğu Get-EventLog ve Get-WinEvent cmdlet’leri sayesinde log yönetimi tamamen otomatik hale getirilebilir.

Event Log Türleri

Windows’ta üç ana log türü vardır:

  • Application Log – Uygulama tabanlı olaylar (örnek: Outlook, SQL)

  • System Log – İşletim sistemi ve servis kayıtları

  • Security Log – Güvenlik olayları (oturum açma, başarısız denemeler)

PowerShell ile tüm bu log’lara erişebilir ve filtreleme yapabilirsin.

 PowerShell ile Event Log Listeleme

Tüm log türlerini görüntülemek için:

Get-EventLog -List

Son 20 sistem logunu listelemek:

Get-EventLog -LogName System -Newest 20

Sadece “Error” türündeki kayıtları filtrelemek:

Get-EventLog -LogName Application -EntryType Error -Newest 10
İpucu: “Security” logları için PowerShell’i yönetici olarak çalıştırman gerekir.

Logları CSV’ye Aktarma Script’i

Belirli logları dışa aktarmak için:

Get-EventLog -LogName Application -EntryType Warning -Newest 100 | Select-Object TimeGenerated, Source, EventID, Message | Export-Csv -Path "C:\Logs\ApplicationLogs.csv" -NoTypeInformation
Benzer şekilde kullanıcı bilgilerini dışa aktarmak istersen PowerShell ile Active Directory Kullanıcılarını CSV’ye Aktarma makalemizi inceleyebilirsin.

Log Temizleme Komutu

Tüm Application loglarını temizlemek için:

Clear-EventLog -LogName Application

Tüm logları tek seferde temizlemek:

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

Dikkat: Temizleme işlemi geri alınamaz. Öncesinde mutlaka yedek alın.

Log Arşivleme (Yedekleme) Script’i

Logları silmeden önce arşivlemek için:

$logname = "System" $backupPath = "C:\Logs\$logname-$(Get-Date -Format yyyyMMdd).evtx" wevtutil epl $logname $backupPath Write-Host "$logname logları $backupPath konumuna arşivlendi."

Bu yöntemle .evtx formatında yedek oluşturabilir, gerektiğinde Event Viewer üzerinden yeniden inceleyebilirsin.

 Gerçek Senaryo: Otomatik Log Temizleme Görevi

Aşağıdaki script, haftalık olarak tüm logları yedekleyip temizler:

$logs = @("Application", "System", "Security") $backupDir = "C:\Logs\Archive\" foreach ($log in $logs) { $file = "$backupDir$log-$(Get-Date -Format yyyyMMdd).evtx" wevtutil epl $log $file Clear-EventLog -LogName $log Write-Host "$log logları yedeklendi ve temizlendi." }

Bu script’i Task Scheduler üzerinden haftalık çalışacak şekilde planlayabilirsiniz.

Artık PowerShell kullanarak:

  • Logları görüntüleyebilir,

  • Hata kayıtlarını filtreleyebilir,

  • CSV’ye aktarabilir,

  • Temizleme ve arşivleme işlemlerini otomatikleştirebilirsin.

PowerShell event log yönetimi, sistem performansını korumak ve güvenlik olaylarını analiz etmek için en verimli yöntemlerden biridir.

Kaynaklar:

Bu makaleyi paylaş
Takip et:
Tolga CEYHAN, bilgi teknolojilerini severek takip eder ve BT üzerine hali hazırda aktif olarak çalışmaktadır. 2006 yılından 2017 yılına kadar web tasarım yazılım üzerine çalışmalar yaptım. Şuan ise Windows Sistem ve Sistem Güvenliği alanında çalışmalarımı sürdürmekteyim.
Yorum Yap

Bir yanıt yazın

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

Exit mobile version