2

特定のグループ 1 レイヤーの下にあるすべてのネストされたグループを見つける必要があります。私が抱えている問題は、以下のコードが通常は機能することですが、一部のグループでは機能しません。

Windows エクスプローラーを使用して特定のグループを検索すると ([ネットワーク] アイコンをクリックし、[Active Directory の検索] をクリックすると、親グループ内のメンバーとネストされたグループが表示されます。ただし、System.DirectoryServices.AccountManagement を使用するコードを通じて3.5 フレームワーク,var Groups = MyGroup.GetGroups();一部のグループのネストされたグループが表示されない. パーミッションの問題だと思っていたのですが、上記の手動検索でグループ内を表示できる場合は、同じアカウントから実行されているコードが私も同じものを見ることができました。

その価値のために、SSIS パッケージ内の Framework 3.5 の上でスクリプト タスクを使用しています。また、同じパッケージ内で、グループ プリンシパルの代わりにユーザー プリンシパル オブジェクトからグループを検索しても問題なく動作します。

わかりやすくするために、このコードを実行すると

     PrincipalContext AD = new PrincipalContext(ContextType.Domain, "ctx", "mypath");
     GroupPrincipal myGroup = GroupPrincipal.FindByIdentity(AD, "myparentgroup");
     var nestedgroups = myGroup.GetGroups();

ネストされたグループを含める必要がある場合、「ネストされたグループ」は null です。

4

1 に答える 1

2

私が抱えていた問題はvar Groups = MyGroup.GetGroups();、使用すべきときに使用したことvar Groups = MyGroup.GetMembers();でした。それを link ステートメントの後ろに置くと、 .GetMembers()ユーザーとグループが含まれているため、探していたすべてのオブジェクトを取得できました。それが役立つことを願っています。

于 2015-09-30T13:45:14.213 に答える