Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

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

参考

https://msdn.microsoft.com/ja-jp/library/system.diagnostics.eventing.reader.eventlogsession(v=vs.110).aspx

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away