【发布时间】:2012-04-02 18:03:49
【问题描述】:
我在处理这段代码时遇到了一些困难,尤其是 PrincipalSearcher。我正在尝试获取与特定 OU 关联的所有组的列表。
我试图只返回所有组范围下的“安全”组,不包括通讯组。
我遇到的问题是,除了我打算返回的组之外,它还会返回这些内置组。
帮助服务组 Telnet客户端 管理员 用户 客人 打印操作员 备份运算符 复制器 远程桌面用户 网络配置运营商 性能监视器用户 性能日志用户 分布式 COM 用户 域计算机 域控制器 架构管理员 企业管理员 证书发布者 域管理员 域用户 域访客 组策略创建者所有者 RAS 和 IAS 服务器 服务器运营商 账户运营商 Windows 2000 之前的兼容访问 传入的森林信任建设者 Windows 授权访问组 终端服务器许可证服务器 DnsAdmins DnsUpdateProxy IIS_WPG
我不确定范围是否不正确,或者我可能缺少某种过滤。
相关代码段:
public static ArrayList GetAllGroups()
{
var myItems = new ArrayList();
var ctx = new PrincipalContext(ContextType.Domain,"MyOU");
// define a "query-by-example" principal - here, we search for a GroupPrincipal
var qbeGroup = new GroupPrincipal(ctx);
// create your principal searcher passing in the QBE principal
var srch = new PrincipalSearcher(qbeGroup);
// find all matches
foreach (Principal found in srch.FindAll())
{
var foundGroup = found as GroupPrincipal;
if (foundGroup != null)
{
myItems.Add(foundGroup.Name);
}
}
return myItems;
}
如何让这个排除内置组?
我们将不胜感激。
谢谢!
【问题讨论】:
标签: c# active-directory