Étant donné la hiérarchie simple OU/Groupe suivante :
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")
Pourquoi la recherche récursive suivante ne tient-elle pas compte du client1-emp1 simplement parce que son groupe primaire n'est pas défini comme "Utilisateurs du domaine" ou "Invités du domaine" ? Par ailleurs, quels autres groupes peuvent être définis comme groupe primaire pour que emp1 soit inclus dans la recherche ?
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);
}
Résultats :
Principal: client1-emp2