组中的嵌套Active Directory组

时间:2015-09-29 14:39:11

标签: c# active-directory active-directory-group ssis-2008

我需要找到特定组1层中的所有嵌套组。我遇到的问题是下面的代码通常可以工作,但对于某些组,它没有。

如果我使用Windows资源管理器搜索特定组(单击“网络”图标,然后单击“搜索Active Directory”,我可以看到父组中的成员和嵌套组。但是通过使用System.DirectoryServices的代码.ArountManagement on 3.5 Framework,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();

“Nestedgroups”在应该包含我的嵌套组时为null。

1 个答案:

答案 0 :(得分:0)

我遇到的问题是,当我应该使用var Groups = MyGroup.GetGroups();时,我使用了var Groups = MyGroup.GetMembers();。将它放在链接语句后面允许我获取我正在寻找的所有对象,因为.GetMembers()包括用户和组。希望有所帮助。