为什么从Active Directory中的“域用户”中更改用户的“主要组”会阻碍用户的递归搜索?
|
给定以下简单的OU / Group层次结构:
OU=MyApplication
CN=CompanyClients(objectClass=\"group\"; Members=\"Clients\\Client1\")
OU=Clients
CN=Client1(objectClass=\"group\"; Members=\".\\client1-emp1; .\\client1-emp2\")
CN=client1-Emp1 (objectClass=\"user\"; Primary Group=\"Client1\")
CN=client1-Emp2 (objectClass=\"user\"; Primary Group=\"Domain Users\")
为什么以下递归搜索仅因为其主组未设置为“域用户”或“域来宾”而忽略了client1-emp1?另外,可以将其他哪些组设置为主组,以使emp1成功包含在搜索中?
using System.DirectoryServices.AccountManagement;
var ctx = new PrincipalContext(ContextType.Domain, \"mydomain.org\");
var group = GroupPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, \"CompanyClients\");
var results = group.GetMembers(recursive:true);
//results excludes client1-emp1 but includes client1-emp2
foreach (var principal in results)
{
Debug.WriteLine(\"Principal:\" + principal.SamAccountName);
}
结果:
Principal: client1-emp2
没有找到相关结果
已邀请:
1 个回复
藐刚
的
方法可能不会搜索将该组作为主要组的用户(即,它不检查PrimaryGroupId属性),这就是为什么看不到成员之一的原因。 本文介绍了如何为用户解析主要组,我认为您应该能够使用此处说明的概念来解决您的问题:如何使用PrimaryGroupID属性为用户找到主要组