7.04.2023

Olay günlüğü (eventlog) boyutlarını değiştirme

Get-WinEvent ile güvenlik olay kayıtlarını incelerken bazen hiç kayıt dönmüyor. Bunun sebebi de varsayılan olarak 20 MB olarak ayarlanan güvenlik olay günlüğünün bir süre sonra eski olayları siliyor olması. Yerel bilgisayarda mevcut durumu kontrol etmek için

PS> Get-Evenlog -List

kullanabiliriz. Güvenlik olay günlüğü (security) için bunu yönetici yetkileriyle açılmış bir pencereden çalıştırmamız gerek. Uygulama ve sistem için buna gerek yok. Bu komutun ürettiği çıktıda Max(K) sütununa bakarak istediğimiz olay günlüğünün azami boyutunu öğrenebiliriz. Bunu Get-WinEvent ile de yapabiliriz. Örneğin uzak bir bilgisayarın uygulama, sistem ve güvenlik olay kayıtlarını (yetkilerimiz dahilinde) incelemek için

PS> Get-WinEvent -Computername uzakpc -Listlog Application, System, Security

Yerel bilgisayarda olay herhangi bir günlüğüne ayrılmış alanı değiştirmek için

PS> Limit-Eventlog -LogName Security -MaximumSize 128MB

kullanabiliriz. Yeni boyutun 64KB'ın katları olması gerektiği söylenmiş. Bunu sağlamak için en iyi yöntem MB birimlerini kullanarak 1MB'ın katlarını belirtmek olabilir.

Limit-Eventlog cmdlet'inin -Computer parametresi ile ya da Invoke-Command kullanarak bu işlemi uzak bilgisayarlarda da uygulayabiliriz.

Sadece yerel bilgisayarda çalışan Get-LogProperties cmdlet'ini uzak bilgisayarda kullanmak için Invoke-Command ile birlikte çalıştırabiliriz. Hatta alias'larla birlikte şöyle bir çıktı üretir:

PS> icm -cn uzakpc {Get-LogProperties Security}

PSComputerName : uzakpc
RunspaceId     : <...>
Name           : Security
Enabled        : True
Type           : Admin
Retention      : False
AutoBackup     : False
MaxLogSize     : 524288000

2023-11-24 Ek: Bu harika yöntem, Application and Services Logs (Uygulama ve Hizmet Günlükleri) altındaki günlüklerin boyutlarını değiştiremiyor. Örneğin

PS> Get-WinEvent -LogName "Microsoft-Windows-TaskScheduler/Operational"

ile "Microsoft-Windows-TaskScheduler/Operational" günlüğünü bulmasına rağmen

PS> Limit-Eventlog "Microsoft-Windows-TaskScheduler/Operational" -MaximumSize 512MB

hata dönüyor. İki yöntem buldum. Birincisi Get-WinEvent kullanmak:

PS> $log1 = Get-WinEvent -ListLog "Microsoft-Windows-TaskScheduler/Operational"
PS> $log1.MaximumSizeInBytes = 128MB
PS> $log1.SaveChanges()

İkinci yöntem ise Kayıt defteri düzenleyicisini kullanmak. Regedit.exe ile açtıktan sonra HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\WINEVT\Channels\Microsoft-Windows-TaskScheduler/Operational yoluna giderek buradaki MaxSize byte cinsinden değerini değiştirebiliriz. 128MB için bu 0x8000000 veya 134217728 olabilir.

Hiç yorum yok: