- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用这段代码时遇到了一些困难,尤其是在使用 PrincipalSearcher 时。我正在尝试获取与特定 OU 关联的所有组的列表。
我试图只返回所有组范围下的“安全”组,不包括通讯组。
我遇到的问题是,除了我打算返回的那些之外,它还返回了这些内置组。
帮助服务组Telnet客户端管理员用户嘉宾打印运算符(operator)备份运算符(operator)复制器远程桌面用户网络配置运算符(operator)性能监视器用户性能日志用户分布式 COM 用户域计算机域 Controller 架构管理员企业管理员证书发行商域管理员域用户域 guest 组策略创建者所有者RAS 和 IAS 服务器服务器运营商帐户运算符(operator)Windows 2000 之前的兼容访问即将到来的森林信托 build 者Windows 授权访问组终端服务器许可证服务器Dns管理员Dns更新代理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;
}
我如何才能排除内置组?
如有任何帮助,我们将不胜感激。
谢谢!
最佳答案
两件事:
没有组关联一个 OU - OU 是一个容器,包含用户、计算机、组等。 (就像包含文件的目录)。你是这个意思吗?您想要枚举给定 OU 中包含的组??
如果是这样:您没有正确调用 PrincipalContext
的构造函数。如果您检查 MSDN documentation on PrincipalContext
constructors ,您会看到您正在使用的是带有 ContextType
和 name
的那个,它代表 domain name您要绑定(bind)到的上下文:
var ctx = new PrincipalContext(ContextType.Domain,"MyOU");
这绑定(bind)到 MyOU
域 - 并且它绑定(bind)在该域树的根部。
您可能正在寻找具有三个参数的构造函数 - 一个 ContextType
和 两个字符串 - 第一个是上面的域名,第二个一个是您搜索的起始位置。因此,将您的 PrincipalContext
构造更改为:
var ctx = new PrincipalContext(ContextType.Domain, "YOURDOMAIN", "OU=MyOU");
然后再次搜索 - 现在您应该只会得到包含在 OU=MyOU
容器中的组。
关于C# PrincipalSearcher,返回特定 OU 的 AD 组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9981410/
我在使用 PrincipalSearcher 时需要分页。我尝试使用底层 DirectorySearcher 的 VirtualListView 属性,但没有成功。 示例代码: using Syste
我希望能够查询事件目录,给出包含某些词的所有组的列表,例如下面的用户或管理员,这是我到目前为止所得到的 PrincipalContext ctx = new PrincipalContext(Cont
我有一个为人们分配用户名的网络服务。在内部,我调用了一系列函数来验证 AD 中是否存在跨 UserPrincipal、samAccountName、proxyaddresses 和 email 字段的
是否可以通过单个 PrincipalSearcher 调用搜索多个用户名。也许通过提供请求的用户名的“OR”作为过滤条件? 最佳答案 是的,可以使用简单的 LDAP 查询来搜索多个用户名。我不确定您到
我也有一个使用插件和应用程序域的长期运行服务,并且由于使用目录服务而导致内存泄漏。请注意,我使用的是 system.directoryservices.accountmanagement,但据我了解,
我正在尝试在未设置属性的 AD LDS (ADAM) 实例中搜索用户,例如,“公司”属性未设置为 ADAM 存储(或 AD 中的值)事)。 当我将 PrincipalSearcher 和自定义 Use
是否可以使用 System.DirectoryServices.AccountManagement.PrincipalSearcher 使用“或”(而不是“和”)基于多个参数进行搜索。 即 // Th
我看到使用 PrincipalSearcher 的 Active Directory 示例和其他使用 DirectorySearcher 做同样事情的示例。这两个例子有什么区别? 使用 Princip
如何防止在对具有子容器(子 OU)的特定 OU 的查询中使用子容器对象? 澄清一下,我不想在结果集中包含子 OU(子容器)中的用户对象。 给定类似于 another stackoverflow pos
我有以下代码返回一个 UserPrincipal 但登录名从不包含域名。也没有“域名”或类似属性。 我如何从 UserPrincipal 或 PrincipalSearcher 获取用户/返回用户的域
在构建过滤器以查找具有特定值的对象时,Principal Searcher 似乎做得很好。没有呢?例如,我如何构建一个过滤器来排除名字中带有“Joe”的所有人。下面的代码将不起作用。
我们的应用程序有一个从 Active Directory 中获取所有用户并使用他们的信息更新相关 SQL 表的过程。晚上的过程,它是几年前写的——所以它是有效的遗留代码,“如果它没有被破坏,就不要修复
我在使用这段代码时遇到了一些困难,尤其是在使用 PrincipalSearcher 时。我正在尝试获取与特定 OU 关联的所有组的列表。 我试图只返回所有组范围下的“安全”组,不包括通讯组。 我遇到的
我在 C# 中查询 Active Directory 时遇到奇怪的问题。 var ctx = new PrincipalContext(ContextType.Domain, "adr", "usr"
我有以下代码来检索当前的事件目录用户: public List GetADUsers(string term=null) { List results = new List(); st
尝试在 Active Directory 中搜索有关用户的非空描述(意味着他们有职位),如下面第 4 行所示,但出现无法使用排除项的错误! 关于另一种方法的建议? PrincipalContext c
我只是好奇: List ADUsers = new List(); using (PrincipalContext principle_context = new PrincipalContext(C
我是一名优秀的程序员,十分优秀!