2013-02-25 93 views
1

我想使用PowerShell刪除事件日誌的舊條目(其中舊的意思是「舊的X天」)。
我發現Clear-EventLog cmdlet使用PowerShell刪除事件日誌的舊條目?

刪除所有條目從指定的事件日誌的本地或遠程計算機上。

我發現了很多使用此cmdlet刪除所有條目的腳本 -
但有一種方式來選擇事件日誌的只有一些[老]條目只有那些刪除?

+3

沒有辦法。這是行爲設計​​。 http://serverfault.com/questions/8339/how-can-i-remove-specific-events-from-the-event-log-in-windows-server-2008 – 2013-02-25 13:26:21

回答

0

正如詹姆斯所說,你不能。但是,如果你想保持你的日誌的日期範圍的一部分,這是不乾淨的,但這裏有一個解決方法:

  1. 你備份你想保持與「wevutil」實用程序(http://technet.microsoft.com/fr-fr/library/cc732848%28v=ws.10%29.aspx) 類似的東西消息:

    $ LOGNAME = 「應用程序」 $ DateStart =(獲取最新).AddDays( - $天) $ DateEnd =獲取最新 $ EvtFile = 「$計算機名」 + 「-EventLogExport-」 +「 $ LogName「+」.evtx「 function Get-Milliseconds($ EventsDate){ $ EventsTimeSpan = New-TimeSpan -Start $ EventsDate -End(Get-Date) [數學] ::回合($ EventsTimeSpan.TotalMilliseconds) }#結束函數 $ EventsDateStart = GET-毫秒(獲取最新$ DateStart) $ EventsDateEnd = GET-毫秒(獲取最新$ DateEnd)

    wevtutil EPL $ $ LOGNAME EvtFile/q: 「* [系統[TimeCreated [timeDiff測量(@SystemTime)> = $ EventsDateEnd]和TimeCreated [timeDiff測量(@SystemTime)< = $ EventsDateStart]]]」

  2. 使用清除-EventLog cmdlet清空您的事件日誌。

0

I found a one-liner刪除所有事件日誌中的所有條目 例如,

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

我個人或者設置限制對事件日誌的大小

limit-eventLog -logname Security -MaximumSize 64KB 

或做月度出口和出口後刪除。