Windowsシステムのユーザーアカウントの変更に関するログメッセージを解析しています。変更についてユーザーに通知したいので、Active Directoryからユーザーの個人情報(First、Last、E-Mail)を取得する必要があります。
ユーザー名を取得する方法はすでに見つけましたが、それはWMI経由でのみ行われ、ADSI経由ではありません。
Function FindUser(Message)
Dim objWMIService
Dim strAccountRegex
Dim objRegex
Dim objMatch
Dim strComputer
Dim objUser
Dim objShell
strAccountRegex = "(\%\{[A-Z,0-9,\-]*\})"
strComputer = "."
Wscript.StdOut.writeLine "Querying WMI to retrieve user-data"
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set objShell = WScript.CreateObject("WScript.Shell")
Set objRegex = new RegExp
objRegex.Pattern= strAccountRegex
for each objMatch in objRegex.Execute(Message)
REM Wscript.StdOut.writeLine "Found an Account ID: " & objMatch.value
Dim strSID
strSID=NormalizeSID(objMatch.value)
REM Wscript.Echo "SID after escaping: " & strSID
Set objUser = objWMIService.Get _
("Win32_SID.SID='" & strSID & "'")
next
FindUser=objUser.ReferencedDomainName & "\" & objUser.AccountName
End Function
正常に動作しますが、WMIではなくActiveDirectoryを介して実行したいと思います。手伝って頂けますか?