2009-05-07 4 views

Répondre

1

Oui, c'est possible avec une requête étendue d'attribut. Il nécessite W2K3 AD ou plus tard, mais vous donnera tous les utilisateurs qui ont un attribut particulier, c'est-à-dire l'appartenance à un groupe ou dans votre cas plusieurs groupes (intersection de groupes). Un des meilleurs exemples est de Joe Kaplan et Ryan Dunns livre "Le Guide des développeurs .NET pour la programmation des services d'annuaire" pour le travail AD, il est difficile de battre regarder à la page 179 pour une bonne promenade à travers. À ce stade, vous avez passé des recherches triviales dans AD et un certain nombre de choses deviennent importantes comme la racine de la recherche, la portée et l'effet de la recherche dans un ensemble de données potentiellement ÉNORME pour les éléments que vous voulez. La recherche de 50 ou 60 000 utilisateurs pour trouver les membres d'un groupe a un effet sur les performances et peut être préparé à faire des résultats paginés ou similaires si l'ensemble de données est volumineux. Kaplan/Ryan font un excellent travail de travail terre-à-terre pour vous amener là où vous devez être. Cela dit, je les ai utilisés sur deux projets AD avec beaucoup de succès. Être en mesure de récupérer les données de AD sans requêtes récursives est très utile et j'ai trouvé que c'est rapide tant que je contrôle la taille de mon ensemble de données.

2

Essayez ceci:

(&(objectCategory=Person) 
    (& 
     (memberOf=CN=group1,dc=company,dc=local) 
     (memberOf=CN=group2,dc=company,dc=local) 
     (memberOf=CN=group3,dc=company,dc=local) 
    ) 
) 

Ceci est similaire à my question, sauf là, je voulais que tous les utilisateurs qui ne sont pas membres des groupes. Vous devrez supprimer tous les espaces pour que la plupart des outils de requête fonctionnent.

0

Il n'est pas possible dans une seule requête si vos groupes contiennent des groupes imbriqués.

Vous auriez besoin d'écrire du code qui résout récursivement les membres du groupe et fait l'équivalent logique d'une "jointure interne" sur les résultats, produisant une liste d'utilisateurs communs à tous les groupes d'origine.

Questions connexes