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行のフォーマットとなるように整形した。