ドメイン環境化において、ユーザが端末からログオフした時間を、AD サーバーのイベントビューワーへ出力方法についてご紹介します。
ログオフスクリプトの作成
ログオフスクリプトはこちらを参考にさせて頂きました。
“\\AD01”は、スクリプトを配置する DC 名を指定します。
OnErrorResumeNext' EVENTLOG_DC_NAME: イベントログを記録させたいDC名をUNCで指定Const EVENTLOG_DC_NAME ="\\AD01"' SCRIPT_PRE_MESSAGE: イベントログに書き込むメッセージの最初の文言Const SCRIPT_PRE_MESSAGE ="[端末からログオフしました。] "' WshShellオブジェクトとADSIオブジェクトを生成、取得Set objShell = WScript.CreateObject("WScript.Shell")Set objADSystemInfo = WScript.CreateObject("ADSystemInfo")' ADのユーザーオブジェクトを取得Set objUser =GetObject("LDAP://"& objADSystemInfo.UserName)' ADのユーザーオブジェクトのGroupsプロパティから、所属グループ名を取得 strGroupNames ="MemberOf: CN=Domain Users"ForEach objGroup In objUser.Groups strGroupNames = strGroupNames &","& objGroup.NameNext' EventCreateコマンドでイベントログを書き込む。 objShell.Run "EVENTCREATE /S "& EVENTLOG_DC_NAME &" /T INFORMATION /L APPLICATION /ID 8 /D "&""""& SCRIPT_PRE_MESSAGE & strGroupNames &"""",7,True'事後処理Set objShell =NothingSet objADSystemInfo =NothingSet objUser =Nothing
スクリプトの配置
スクリプトは以下のパスに配置します。※任意のパスでは実行されないので注意してください。
\\DC名\sysvol\ドメイン名\scrpits\
本例では、以下のパスに配置しています。
\\ad01\sysvol\example.com\scripts
GPOの設定
GPOを設定します。本例では「DaaS Users」というユーザ OU に、「Audit」と名前のポリシーをリンクしています。
「Audit」ポリシーで「ログオフスクリプト」を指定します。
GPOを更新します。
gpupdate /force
アクセス権の設定
通常、イベントビューワーへの書き込みは Domain_Admins グループに属するアカウントでのみ許可されています。一般ユーザーで書き込みができるようDC 上で、以下のコマンドを実行します。
wevtutil sl application /ca:O:BAG:SYD:(A;;0xf0007;;;SY)(A;;0x7;;;BA)(A;;0x7;;;SO)(A;;0x3;;;IU)(A;;0x3;;;SU)(A;;0x3;;;S-1-5-3)(A;;0x3;;;S-1-5-33)(A;;0x1;;;S-1-5-32-573)(A;;0x3;;;DU)