【技】PowershellでイベントログをCSVへ吐出(2K8R2用っ)

kooです。( ノ゚Д゚)ヨッ!
 
はい、備忘録です。
 
ちょっくら仕事復帰のためのリハビリ的にスクリプト書き。
無題
まぁ、使うかわかんないけどね。
 
とりあえず、部分

//セキュリティ イベント
Get-wmiobject -query "Select * from win32_ntlogevent where logfile='Security'"| export-csv security.csv
//システム イベント
Get-wmiobject -query "Select * from win32_ntlogevent where logfile='System'" | export-csv system.csv
//アプリケーション イベント
Get-wmiobject -query "Select * from win32_ntlogevent where logfile='Application'"| export-csv application.csv

各行これで、WindowsServer2008のイベントログをカレントのhogehoge.csvへ書き出すようにはなる。
ただし、あほみたいにでかいセキュリティーログを取ろうとすると、
クォータ違反です的なエラーを吐くので、やっぱり30日刻みとか少々、コツが必要になるようだ。
 
これだけだと、使えないけど。
 
それじゃ、しょうがないので。
=========================================

$IpAddress = "127.0.0.1"
$EventLogName = "Application"
$StartDate = Get-Date
$EndDate = $StartDate - (New-TimeSpan -day 6)
$file = "C:\" + $EventLogName + ".csv"

#イベントログ取得
function getEventLog ($IpAddress,$EventLogName,$StartDate,$EndDate,$file)
{
#イベントログ取得
$logArray = Get-EventLog -Computername $IpAddress -logname $EventLogName -after $EndDate -before $StartDate | Select-Object EntryType,EventID,Source,TimeGenerated,Message
#期間内のイベントログが無い場合は、ファイルにログ無しと書き込む
if ($null -eq $logArray)
{
$message = "イベントログがありません。 期間:" + $startdate + " ~ " + $enddate
$message | Out-File -Filepath $file
}
else
{
#取得したイベントログをファイルに書き込む
foreach ($row in $logArray)
{
#Messageに入っている改行コードを変換
$workMessage = [string]$row.Message.Replace("`n"," ")
#日付の書式を整形
$workTimeGenerated = [string]$row.TimeGenerated.ToString("yyyy/MM/dd HH:mm:ss")

#一行としてまとめる
$line = $workTimeGenerated + "`t" + [string]$row.EntryType + "`t" + [string]$row.EventID + "`t" + [string]$row.Source + "`t" + $workMessage

#ファイルに書き込む
$line | Out-File -Filepath $file -Append
}
}
#ファイルの存在チェックをして終了
if (Test-Path $file)
{
#ログを出力
Write-Host $file "を作成しました。"
}
}

 
#実行
getEventLog $IpAddress $EventLogName $StartDate $EndDate $file

=========================================
まぁ、こいつでいけるかな。

ってとこだな。

ツイートツイート

1件のコメント

  1. やけにこのページへのアクセスが多い。

    イベントログをCSV化したい人が来るんだろうなぁ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です