【问题标题】:Delete old entries of the event-log with PowerShell?使用 PowerShell 删除事件日志的旧条目?
【发布时间】:2015-12-07 19:17:15
【问题描述】:

我想使用 PowerShell 删除事件日志的旧条目(其中旧的意思是“比 X 天更早”)。
我找到了Clear-EventLog cmdlet,但是那个

从本地或远程计算机上的指定事件日志中删除所有条目。

我发现很多脚本使用此 cmdlet 来删除所有条目 -
但是有没有办法只选择事件日志的一些 [旧] 条目并只删除那些?

【问题讨论】:

标签: powershell


【解决方案1】:

正如詹姆斯所说,你不能。但是,如果您想在日志中保留日期范围的一部分,它并不干净,但这里有一个解决方法:

  1. 您使用“wevutil”实用程序备份要保留的消息 (http://technet.microsoft.com/fr-fr/library/cc732848%28v=ws.10%29.aspx) 类似的东西:

    $LogName="应用程序" $DateStart=(Get-Date).AddDays(-$Days) $DateEnd=获取日期 $EvtFile="$ComputerName" + "-EventLogExport-" + "$LogName" + ".evtx" 函数获取毫秒($EventsDate){ $EventsTimeSpan=New-TimeSpan -Start $EventsDate -End (Get-Date) [数学]::Round($EventsTimeSpan.TotalMilliseconds) } # 结束函数 $EventsDateStart=Get-Milliseconds(Get-Date $DateStart) $EventsDateEnd=Get-Milliseconds(Get-Date $DateEnd)

    wevtutil epl $LogName $EvtFile /q:"*[System[TimeCreated[timediff(@SystemTime)>=$EventsDateEnd] and TimeCreated[timediff(@SystemTime)

  2. 使用 Clear-EventLog cmdlet 清空您的事件日志。

【讨论】:

    【解决方案2】:

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

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

    我个人要么设置事件日志大小的限制

    limit-eventLog -logname Security -MaximumSize 64KB
    

    或每月导出并在导出后删除。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多