Вложенные группы Active Directory в группу

Мне нужно найти все вложенные группы в определенной группе 1 слой вниз. У меня проблема в том, что приведенный ниже код обычно работает, но для некоторых групп это не так.

Если я использую проводник Windows для поиска определенной группы (щелкните значок «Сеть», затем нажмите «Поиск в Active Directory», я смогу увидеть членов и вложенные группы в родительской группе. Но с помощью кода, использующего System.DirectoryServices.AccountManagement на 3.5 Framework, var Groups = MyGroup.GetGroups(); не может видеть вложенные группы некоторых групп. Я думал, что это связано с разрешениями, но если я могу видеть внутри группы из моего собственного ручного поиска, упомянутого выше, то я предполагаю, что код, работающий из той же учетной записи, должен быть в состоянии увидеть то же самое тоже. Есть ли что-то другое, что я должен попробовать?

Как бы то ни было, я использую задачу сценария поверх Framework 3.5 внутри пакета SSIS. Также в том же пакете отлично работает поиск групп по объекту принципа пользователя вместо принципа группы.

И для ясности, когда я запускаю этот код

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

«Вложенные группы» имеют значение null, если они должны содержать мои вложенные группы.


person Jason R.    schedule 29.09.2015    source источник


Ответы (1)


Проблема заключалась в том, что я использовал var Groups = MyGroup.GetGroups(); вместо var Groups = MyGroup.GetMembers();. Помещение этого за оператором ссылки позволило мне получить все объекты, которые я искал, потому что .GetMembers() включает пользователей и группы. Надеюсь, это поможет.

person Jason R.    schedule 30.09.2015