VBSでActiveDirecory内の特定ユーザーアカウントの所属グループを取得する方法を考えています。
何かいい方法はありますでしょうか。
自分なりに考えたのが、ActiveDirecory内のグループをすべてチェックして、メンバーに存在するグループ名を取得する方法です。(以下ソース)
ただ、ActiveDirectory内にグループが3000近くあるため、その方法だと1アカウントに対してかかる時間が長くなってしまっています。
【ソース】
ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT sAMAccountName,cn,ADsPath " _
& "FROM 'LDAP:// ~ '" _
& "WHERE objectCategory='Group'"
Set objRecordSet = objCommand.Execute
Do while not objRecordSet.EOF
Group_ADsPath = objRecordSet.Fields("ADsPath").Value
set objGroup = GetObject(Group_ADsPath) For Each objUser in objGroup.Members if アカウントID = objUser.sAMAccountName then ヒットしたグループ名を取得 end if Next objRecordSet.MoveNext
loop
あなたの回答
tips
プレビュー