- 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/
我想输出测试 OU 中的所有 OU。 my $mesg = $ldap->search( base => "OU=test,OU=company,DC=example,DC=com",
我正在寻找一个 PowerShell 脚本,它可以帮助我: OU 的名称 每个OU 中 AD 用户的数量。 我发现了这个: (Get-ADUser -Filter * -SearchBase “ou=
是否有任何简单的方法可以获取位于给定 OU 下一层的所有 OU 的列表? 即我有一个名为“客户端”的 OU,在这个 OU 下的一个级别有多个 OU,每个客户端一个。即 CAS、ADI、PMA 我想获得
我想使用 C# 将 Active Directory 用户从一个组织单位移动到另一个组织单位。 我已经引用了以下链接 http://forums.asp.net/t/932664.aspx?Movin
我从我们的Exchange服务器获得一个带有标识值的脚本输出: 身份:Domain.com/OU/GivenName姓 如何从值中删除Domain.com/OU/? 正则表达式不是我的优势! :/ 非
我有以下代码: Get-ADUser -SearchBase ‘OU=test,OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM’ -Filter * | F
我有以下代码: Get-ADUser -SearchBase ‘OU=test,OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM’ -Filter * | F
我必须处理的事件目录是这样布置的:域包含许多 OU。这些 OU 之一被命名为“主 OU”。在这个 OU 中,有几个以全局办事处位置命名的 OU(即“芝加哥”“巴黎”)。 任何实际有血有肉的用户帐户都被
刚刚编写了一个脚本来禁用帐户,将其移动到禁用的 OU 并更改用户对象的描述,但我想让它更高效。 我的工作 AD 结构包含根帐户 OU 下的所有用户,以及该帐户 OU 下的 50 个左右的部门 OU。
我正在尝试在用户目录中搜索用户(ou=users,ou=system),但我没有得到结果,请帮助我。以下是我搜索用户目录的代码 public void search(String uid) {
我有一个 Active-Directory 结构,其中用户对象驻留在 OU 中,例如 IT、技术、人力资源、帐户等。我想编写一个 PHP 脚本,使用 AD 对用户进行身份验证,并根据他们的组提供适当的
我必须获取不属于组 OU="Google app User"和 OU=Contacts 的用户的数据,我不知道创建搜索过滤字符串。代码如下--- public SearchResult getUser
使用 PrincipalContext pc = new PrincipalContext(ContextType.Domain, "me.com", "OU=Menetwork OU=Users O
我正在尝试编写一个 PowerShell 脚本,该脚本将查找 AD 中六个月未登录的所有用户,并且不包括 Terminated Users OU 或 Terminated Users\vendors
我需要使用 REGEX 从我的专有名称中提取“OU”部分。 例如: "CN=DAVID Jean Louis (a),OU=Coiffeur,OU=France,DC=Paris,DC=France"
我正在尝试在创建 OU 之前检查它是否存在。我的问题是我有 2 个母 OU“USER BY SITE”和“GROUP BY SITE”,我需要在这 2 个 OU 中拥有完全相同的 OU,1 个用于存储
我正在尝试获取我们整个 OU 受人尊敬的机器上管理员组中所有用户帐户的列表。我找到了一个在单台计算机上显示此内容的脚本,但我想调用计算机名称的 CSV 文件,然后将结果输出到另一个 CSV 文件。这是
function NyChildOU { $overOU = Read-Host "Type in the name of the parrent OU" $oucheck = [adsi]:
这是我的一些示例代码,用于查找 OU 中的所有计算机对象。当我打印出属性字段时,我得到一个 System.__ComObject 用于多个值,例如 lastLogon、lastLogonTimesta
我有一个代码来获取域中的 OU 列表。 现在这只是列出了所有的 OU,并没有给出任何区分 OU 和子 OU 的方法。 DirectoryEntry entry = new DirectoryEntry
我是一名优秀的程序员,十分优秀!