My Tracking

My Tracking

記憶力の低下が気になるアラフォー男の備忘録

Powershellによるログオンとログオフ情報のcsvファイル出力

WindowsServerにおけるログオンとログオフ情報を出力するプログラムを
作成しなければならなかっため、その備忘録

仕様的なもの

要件的には、下記のようなもの。

* WindowsServer2012R2で、監査のため、前日分のログイン、ログオフ情報を取得する。

* 取得したら、それらをcsvファイルに出力する

* ログインは、Windowsセキュリティログから、ログイン情報として識別される
イベントID4624(ログオンタイプ=10 or 2))を抽出条件とする。

* ログオフは、Windowsセキュリティログから、ログオフ情報として識別される
 イベントID4647or 4634を抽出条件とする。

ベースとなるPowershellのイベントログ取得個所

セキュリティイベントログの目的ログを取得するために、Get-EventLog を使用した。
取得するにあたり、下記の記事を多分に参考にした。

※FilterXPathというものもあるらしいが、
上記の記事が非常に参考になったため、これをベースにアレンジしたPowershellのコマンド箇所

csv出力処理も含めたソースコード

上記のイベントログ取得のPowershellコマンド処理をベースにして、 ファイル出力処理などを追加したソースコードの初版をGitHub上に置いてみた。

csvファイルの出力イメージ

出力ファイルのフォーマットは下記のイメージ

「イベント日時,ホスト名,ログファイル名,イベントID,ログソース,ログタイプ,ログメッセージ」

※ログメッセージ出力の過程で、デリミタ文字となる「,」と改行文字は、半角スペースにし、 1ログ=1行のフォーマットとなるように整形した。