是否使用PowerShell删除事件日志的旧条目?

omqzjyyz  于 2022-12-13  发布在  Shell
关注(0)|答案(2)|浏览(165)

我想使用PowerShell删除事件日志的旧条目(其中“旧”表示“早于X天”)。
我找到了Clear-EventLog cmdlet但是
从本地或远程计算机上指定的事件日志中删除所有条目。
我发现很多脚本都使用此cmdlet删除所有条目-
但是否有办法只选择事件日志的一些[旧]条目并只删除这些条目呢?

qeeaahzv

qeeaahzv1#

正如James所说,你不能这样做。但是如果你想在日志中保留一个日期范围,这是不干净的,但这里有一个解决办法:
1.使用“wevutil”实用程序(http://technet.microsoft.com/fr-fr/library/cc732848%28v=ws.10%29.aspx)备份要保留的消息,类似于:
$LogName=“应用程序”$DateStart=(获取日期).AddDays(-$Days)$DateEnd=获取日期$事件文件="$计算机名称”+“-事件日志导出-”+“$LogName”+“.evtx”函数获取毫秒数($EventsDate){ $EventsTimeSpan=新的时间跨度开始$EventsDate -结束(获取日期)[math]::Round($EventsTimeSpan.总毫秒数)} # end函数$EventsDateStart=获取毫秒数(获取日期$DateStart)$EventsDateEnd=获取毫秒数(获取日期$DateEnd)
wevtutil epl $日志名称$事件文件/q:“*[系统[创建时间[timediff(@系统时间)〉=$事件结束日期]和创建时间[timediff(@系统时间)〈= $事件开始日期]]]”
1.使用Clear-EventLog cmdlet清空事件日志。

1bqhqjot

1bqhqjot2#

I found a one-liner从所有事件日志中删除所有条目,例如

wevtutil el | Foreach-Object {Write-Host "Clearing $_"; wevtutil cl "$_"}

就我个人而言,我要么对事件日志大小设置限制,

limit-eventLog -logname Security -MaximumSize 64KB

或者每月导出一次并在导出后删除。

相关问题