Recently it was discovered that a Windows server was running very slow because the Security log’s maximum size was set to 40 gigabytes. Here is a Powershell bit which will look at all event logs, set their max size to 2.5M if set larger, and clear them. Seems to free up a nice healthy dollop of performance in general.
wevtutil el | Foreach-Object { $LogObject = Get-WinEvent -ListLog $_ If ( $LogObject.MaximumSizeInBytes -gt 2500KB ) { "$_ has max set to larger than 2.5M. Setting to 2.5M." $LogObject.MaximumSizeInBytes = 2500KB $LogObject.SaveChanges() } wevtutil cl $_ "$_ cleared." }
There are times when an operation, a software install or configure perhaps, will error with “Cannot open log for source ———-. You may not have write access.” The below will do the above, and also give read/write to every local admin.
wevtutil el | Foreach-Object { wevtutil sl $_ "/ca:O:BAG:SYD:(A;;0x1;;;SY)(A;;0x5;;;BA)(A;;0x1;;;LA)(A;;0x3;;;LA)" $LogObject = Get-WinEvent -ListLog $_ If ( $LogObject.MaximumSizeInBytes -gt 2500KB ) { "$_ has max set to larger than 2.5M. Setting to 2.5M." $LogObject.MaximumSizeInBytes = 2500KB $LogObject.SaveChanges() } wevtutil cl $_ "$_ cleared." }
The security string is written in something called SDDL. Some more info:
https://itconnect.uw.edu/wares/msinf/other-help/understanding-sddl-syntax/