System Center Orchestrator監査ログでRunbook実行ユーザを取りたい

System Center Orchestrator(SCO)で自動化したはいいけど、誰が実行したかの監査データを取得したいと思うことはあると思います。そのような時のために、SCOには監査証跡機能がついています。TechNetだと以下のページがそれにあたります。

監査証跡
http://technet.microsoft.com/ja-jp/library/hh488400.aspx

コマンド一本で有効化できるので、とても簡単です。

PS> cd <システム ドライブ>:\Program Files (x86)\Microsoft System Center 2012\Orchestrator\Management Server 
PS> atlc /enable



ManagementServiceのログの中を見てみると、Runbookの名前と一緒に実行したユーザも取得できていることがわかります。

  • ログファイル格納フォルダ
<システム ドライブ>:\ProgramData\Microsoft System Center 2012\Orchestrator\Audit\ManagementService
  • ログファイルの中身
"2014-Dec-03 03:12:19","SCOHOST","domain\user2","Runbook 1"
"2014-Dec-03 03:13:09","SCOHOST","domain\user1","Runbook 3"
"2014-Dec-03 03:14:49","SCOHOST","domain\user1","Runbook 2"
"2014-Dec-03 03:15:08","SCOHOST","domain\user1","Runbook 1"



最低限の監査情報は取れるのですが、欠点があります。Web ConsoleからのRunbook実行の場合、ユーザが監査ログに記録されません。以下のサイトを見ても、

Orchestrator Web サービスと Orchestration Console のセキュリティ
http://technet.microsoft.com/ja-jp/library/hh912318.aspx

このように書いてあります。

Orchestrator 展開の既定の設定では、Web サービスの呼び出しのログは記録されません。 これは、Orchestration コンソールと Orchestration Integration Toolkit (OIT) で作成された要求に適用されます。 その結果、ユーザーがジョブを開始して Runbook にパラメーターを渡しても、ジョブを開始したユーザーの記録が残りません。



色々調べても良い設定が無く途方に暮れていたのですが、こちらの参照ページで良い方法が書かれていました。大変感謝です。
http://jmattivi.blogspot.jp/2012/09/audit-jobs-started-from-orchestration.html
 
 

スクリプトとクエリに少し修正が必要ですが、すぐに動くようになります。この方法で日次で監査ログ取得すればWeb Consoleからの実行ユーザの情報も取れそうです。