PowerShell を使用して、イベント ログの古いエントリ (old は「X 日前」を意味します) を削除したいと考えています。Clear-EventLog コマンドレット
を見つけましたが、
ローカルまたはリモート コンピューター上の指定されたイベント ログからすべてのエントリを削除します。
このコマンドレットを使用してすべてのエントリを削除するスクリプトを多数見つけましたが
、イベント ログの一部の [古い] エントリのみを選択して、それらのみを削除する方法はありますか?
PowerShell を使用して、イベント ログの古いエントリ (old は「X 日前」を意味します) を削除したいと考えています。Clear-EventLog コマンドレット
を見つけましたが、
ローカルまたはリモート コンピューター上の指定されたイベント ログからすべてのエントリを削除します。
このコマンドレットを使用してすべてのエントリを削除するスクリプトを多数見つけましたが
、イベント ログの一部の [古い] エントリのみを選択して、それらのみを削除する方法はありますか?
ジェームズが言ったように、あなたはできません。ただし、ログの日付範囲の一部を保持したい場合は、きれいではありませんが、次の回避策があります。
「wevutil」ユーティリティ( http://technet.microsoft.com/fr-fr/library/cc732848%28v=ws.10%29.aspx)を使用して、保持したいメッセージをバックアップします。
$LogName="Application" $DateStart=(Get-Date).AddDays(-$Days) $DateEnd=Get-Date $EvtFile="$ComputerName" + "-EventLogExport-" + "$LogName" + ".evtx" function Get-Milliseconds ($EventsDate) { $EventsTimeSpan=New-TimeSpan -Start $EventsDate -End (Get-Date) [math]::Round($EventsTimeSpan.TotalMilliseconds) } # end function $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) <= $EventsDateStart]]]"
Clear-EventLog コマンドレットを使用して、イベント ログを空にします。