Учитывая следующую простую иерархию 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