Windows PowerShellでイベントログをファイルとして保存する

イベントログを.evtファイルとして保存したいケースがたまにある。イベントビューアを起動してファイルを保存するコマンドをWindows PowerShellで書いたもの。わざわざイベントビューアを起動しなくても、スクリプトファイルを実行すれば保存できるようにしたい場合に便利である。

function BackupLog([string]$logName, [string]$savePath)
{
	$wmiString = "Win32_NTEventLogFile WHERE LogFileName = '" + $logName + "'"
	$log = GWMI $wmiString
	$log.PSBase.Scope.Options.EnablePrivileges = $true
	if (($savePath).SubString(($savePath).Length - 1, 1) -ne "")
	{
		$savePath += ""
	}
	$backupName = $savePath + ${env:computername} + "_" + $logName.Replace("/", "_") + ".evt"
	$log.BackupEventLog($backupName)
}

$eventLogs = Get-EventLog -List | Where-Object { $_.Entries.Count -gt 0 }
foreach ($eventLog in $eventLogs)
{
	BackupLog $eventLog.Log "C:"
}

Follow me!

Feedlyで新着記事をチェックしよう!

Feedlyでフォローしておけば、新着記事をチェックすることができます。ぜひ、この機会にFeedlyに追加しておきましょう。