アクティブディレクトリに40K +グループがあり、いくつかのアプリケーションで問題を引き起こしている循環ネストされたグループの問題にますます直面しています。アクティブディレクトリからの循環グループメンバーシップのリスト
誰も循環的なグループメンバーシップが存在する完全なルートをリストする方法を知っていますか?
G1 --> G2 --> G3 --> G4 --> G1
どうすればいいですか。
アクティブディレクトリに40K +グループがあり、いくつかのアプリケーションで問題を引き起こしている循環ネストされたグループの問題にますます直面しています。アクティブディレクトリからの循環グループメンバーシップのリスト
誰も循環的なグループメンバーシップが存在する完全なルートをリストする方法を知っていますか?
G1 --> G2 --> G3 --> G4 --> G1
どうすればいいですか。
ここでは、このコードの修正版がこのトリックを行う必要があります。もちろん、私が頻繁に参照する優れた机のリソースも、本をチェックしてください。
' This VBScript code prints the nested membership of a group.
' ---------------------------------------------------------------
' From the book "Active Directory Cookbook" by Robbie Allen
' ISBN: 0-596-00466-4
' ---------------------------------------------------------------
' ------ SCRIPT CONFIGURATION ------
strGroupDN = "<GroupDN>" ' e.g. cn=SalesGroup,ou=Groups,dc=rallencorp,dc=com
' ------ END CONFIGURATION ---------
strSpaces = " "
set dicSeenGroupMember = CreateObject("Scripting.Dictionary")
Wscript.Echo "Members of " & strGroupDN & ":"
DisplayMembers "LDAP://" & strGroupDN, strSpaces, dicSeenGroupMember
Function DisplayMembers (strGroupADsPath, strSpaces, dicSeenGroupMember)
set objGroup = GetObject(strGroupADsPath)
for each objMember In objGroup.Members
Wscript.Echo strSpaces & objMember.Name
if objMember.Class = "group" then
if dicSeenGroupMember.Exists(objMember.ADsPath) then
Wscript.Echo strSpaces & " ^already seen group member " & _
"(stopping to avoid loop)"
else
dicSeenGroupMember.Add objMember.ADsPath, 1
DisplayMembers objMember.ADsPath, strSpaces & " ", _
dicSeenGroupMember
end if
end if
next
End Function
これはネストされたメンバーシップ情報を提供するので大したことではありませんが、循環参照が含まれているかどうかはわかりません。どのグループメンバーシップが存在するのかが分かります。 答えを探していると、グラフトラバーサルのDepth First Searchというテクニックが見つかりました。擬似コードで言及されていましたので、VBScriptで実装しましたが、うまくいきません。私は現在、Pythonのような別の言語で実装しています。 –
「リストダウン」とはどういう意味ですか?循環参照が存在する場合に壊れない方法で各グループのネストされたグループのリストを作成しようとしていますか、または循環ループに含まれるグループを検索するだけですか? – AnthonyWJones
ネストされた循環グループを検索し、ネストされた循環グループをリストしたいと思います。 –
これをチェックしてください:http://www.rlmueller.net/CircularNested.htm – Adeel