QA@IT

WinServer2012ドメインにおけるログオン&ログオフイベントの取得について

3221 PV

200台規模のクライアントPC環境下において、ユーザーのログオンとログオフの際に、イベントビューアーに記録を取得しようと考えております。
Web上でいろいろと検索し、以下の有名なスクリプトをログオン時にグループポリシーに仕込むことにより、ログオン時刻はサーバのイベントビューアーに取得されるようになったのですが、この情報にActiveDirectoryのユーザー情報を追加したいと考えており、試行錯誤しておりますが、上手くイベントビューアー上に記録されません。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

Const AUDIT_SUCCESS = 8

REM Create Objects
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objADsys = CreateObject("ADSystemInfo")

REM Build a message string
strMsg = " ユーザ" + objNetwork.UserName + " が、ドメイン" + _
objNetwork.Userdomain + " (サーバー" + objADsys.GetAnyDCName + _
")にログオンしました。"

REM Write to Eventlog
objShell.LogEvent AUDIT_SUCCESS, strMsg, "test-AD-01"

Set objShell = Nothing
Set objNetwork = Nothing
Set objADSys = NothingActiveDirectory

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

具体的には、strMsg = " ユーザ" + objNetwork.UserName + " が、ドメイン" + objNetwork.Userdomain + " (サーバー" + objADsys.GetAnyDCName + ")にログオンしました。"に対して、ActiveDirectoryのユーザー情報に記入している[説明][部署][役職]を追加で表示したいと考えています。

なにかお分かりになる方がいるようであれば、ご教授いただければとは思います。

回答

そのスクリプトは知りませんが、

ADSystemInfoを取得しているのであれば
以下のようにユーザーオブジェクトを取得して

Set objUser = GetObject("LDAP://" & objADsys.UserName)

でユーザー情報を取得して、
Description, Department, Title (formal job titleを表す) あたりがとれれば実現できるのではでしょうか。

元のスクリプト含め、内容を理解するために以下の「Hey, Scripting Guy!」を読まれるとよいかと思います。

Hey, Scripting Guy!: あなたはだれ
https://msdn.microsoft.com/ja-jp/cc137985

ユーザーオブジェクトとADUser情報のマッピングは以下などを参考にしてください。

Mapping Between IADsUser Properties and Active Directory Attributes
https://msdn.microsoft.com/en-us/library/windows/desktop/aa746392(v=vs.85).aspx

編集 履歴 (0)
  • flied_onion様からご教授いただいた回答やサイトを確認し、"Set objUser = GetObject("LDAP://" & objADsys.UserName)"を追記し、イベントビューアーにログを反映させる段階で" + objUser.Description + "と追記することによって、当方が意図しているイベントビューアーの結果が反映されました。
    ありがとうございました!
    -
ウォッチ

この質問への回答やコメントをメールでお知らせします。