我需要找到特定组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。
答案 0 :(得分:0)
我遇到的问题是,当我应该使用var Groups = MyGroup.GetGroups();
时,我使用了var Groups = MyGroup.GetMembers();
。将它放在链接语句后面允许我获取我正在寻找的所有对象,因为.GetMembers()
包括用户和组。希望有所帮助。