LoginSignup
4
3

More than 5 years have passed since last update.

evtx形式のイベントログを今日を起点に過去100日分取得する

Last updated at Posted at 2018-05-07

evtx形式で取得する方法の記事が少ないので、載せます

※ver2以上で動作確認済み


# イベントログ出力関数を定義
# 引数1:ログ種別(System,Application)    引数2:出力先フォルダ(C:¥evtxlog など)
function get-evtxlog ($logname,$outpath) {




# 開始日付(100日前)と終了日付(今日)を取得し、
# イベントログの選択に使用するクエリ(XPATH形式)に格納する

        # 開始日付指定(100日前を指定する場合、100と記述する)
        $fromDay = 100

        # 開始日付
        $startTime = (Get-Date).AddDays(-$fromDay)

        # 終了日付(今日)
        $endTime   = (Get-Date)

        # イベントログの選択に使用するクエリ(XPATH形式)に渡すため、システム時刻(UTC)に変換する
        $startUtcTime = [System.TimeZoneInfo]::ConvertTimeToUtc($startTime).ToString("yyyy-MM-ddTHH:mm:ssZ")
        $endUtcTime   = [System.TimeZoneInfo]::ConvertTimeToUtc($endTime).ToString("yyyy-MM-ddTHH:mm:ssZ")

        # イベントログの選択に使用するクエリ(XPATH形式)
        $filter = @"
Event/System/TimeCreated[@SystemTime>='$startUtcTime'] and
Event/System/TimeCreated[@SystemTime<'$endUtcTime']
"@




# 出力ファイル名を作成しておく

        # yyyy-MMdd-HHmm-ss形式の今日日付(出力ファイルの名前用)
        $YYYYMMDD = $endTime.ToString("yyyy-MMdd-HHmm-ss")

        # 出力ファイル(ログ種別_yyyy-MMdd-HHmm-ss)
        $outfile = "${outpath}\${logname}_${YYYYMMDD}_.evtx"




# .Netクラスのメソッドを使って出力

        # System.Diagnostics.Eventing.Reader.EventLogSession クラスをオブジェクト化
        $evsession = New-Object -TypeName System.Diagnostics.Eventing.Reader.EventLogSession

        # ExportLog メソッドを実行 
        # 引数は、ログ種別、"LogName"(FilePathかLogName)、クエリ、出力ファイル
        $evsession.ExportLog($logname,"LogName",$filter,$outfile)




}

# イベントログ出力関数の定義終了







#### 関数実行

try {

# ログ種別エラー用テストコード(コメントアウト)
# get-evtxlog "Syste" "C:\evtlog"


# 出力先フォルダエラー用テストコード(コメントアウト)
# get-evtxlog "System" "C:\qevtlog"


# Systemイベントログを取得
get-evtxlog "System" "C:\evtlog"

# Applicationイベントログを取得
get-evtxlog "Application" "C:\evtlog"

} catch {

# 1で終了
exit 1

}

結果

Screen Shot 2018-05-07 at 22.16.20.png

参考

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3