0

私は、非常に深くネストされたグループ構造を持つ Active Directory を使用している組織にいます。ディレクトリを照会して、Linux マシンからグループのユーザー メンバーを再帰的に検索したいと考えています。Windows マシンでは、

dsget group "dn_of_group" -members -expand

私がやりたいことを正確に実行し、非常に迅速に実行します。LDAP経由で同じ結果を得ようとしたとき

(memberOf:1.2.840.113556.1.4.1941:=dn_of_group)

クエリの実行には約 1 分かかります。内部で LDAP を使用していますかdsget、それともディレクトリを照会するために他の手段を使用していますか? もしそうなら、私もそれを使う方法はありますか?

編集:ユーザーであるメンバーが必要であることを明確にしました。

4

1 に答える 1

0

System.DirectoryServices.AccountManagement名前空間を持つフレームワーク 3.5は、すべてのグループを再帰的に検索し、ユーザーがメンバーであるグループを返すメソッドを提供します。返されたセットには、承認目的でシステムがユーザーをメンバーと見なす追加のグループが含まれる場合もあります。

UserPrincipal.GetAuthorizationGroups()

このメソッドによって返されるグループには、プリンシパルとは異なるスコープおよびストアからのグループが含まれる場合があります。たとえば、プリンシパルが "CN=SpecialGroups,DC=Fabrikam,DC=com" の DN を持つ AD DS オブジェクトである場合、返されるセットには "CN=NormalGroups,DC=Fabrikam,DC=コム


あなたが持っている他の方向に:

GroupPrincipal.GetMembers(bool recursive)

備考参照

于 2012-01-18T20:54:51.133 に答える