特定のグループ 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 です。