2010-06-03 5 views
0

J'essaie d'obtenir une liste de toutes les machines qui sont membres d'un groupe connu. J'ai le groupe GUID et je construis une requête en utilisant le format "memberof =" et le filtrage par ObjectClass.Active Directory - Groupe de requêtes pour toutes les machines

Cela fonctionne correctement mais ne renvoie pas de machines si l'attribut PrimaryGroup d'une machine est défini comme étant le groupe connu. Dans ce cas, cette machine ne sera pas retournée.

que j'ai trouvé l'explication des raisons pour lesquelles cela est dans le lien suivant (Voir la réponse de Joe Kaplan) http://www.eggheadcafe.com/software/aspnet/29773581/active-directory-query-c.aspx

Malheureusement, la réponse est décrit comment obtenir la liste des groupes d'un utilisateur donné. Je voudrais faire l'inverse et d'un groupe donné obtenir la liste des machines.

Il semble que les informations PrimaryGroup sont stockées côté machine/utilisateur, donc je ne suis pas sûr si ce que je veux faire est encore possible. Je pensais pouvoir interroger l'attribut TokenGroup du groupe connu, puis construire une requête pour renvoyer toutes les machines ayant l'attribut TokenGroup mais il semble que tous les groupes n'aient pas cet attribut.

Quelqu'un a-t-il des idées ou des suggestions? Si une clarification est nécessaire, faites-le moi savoir!

très apprécié,

Ben

+0

Ok, bien la solution que je suis venu avec est de créer une chaîne de filtre le long des lignes de: (| (& (objectclass = ordinateur) (memberOf = )) (& (objectclass = ordinateur) (PrimaryGroupID = {1}))) Dans le filtre ci-dessus, les valeurs Guid et primaryGroupID sont obtenues à partir du groupe d'ordinateurs connu. Cela semble fonctionner et renvoie TOUTES les machines du groupe. Si quelqu'un a des réserves avec cette approche alors s'il vous plaît faites le moi savoir! –

+0

Ok, eh bien ça fait plus d'une semaine maintenant donc je vais supposer qu'il n'y a pas une solution bien connue à ce problème et régler ma question. –

Répondre

0

solution est d'émettre la requête suivante:

(| (& (objectclass = ordinateur) (memberOf =)) (& (objectclass = ordinateur) (primarygroupid = {1})))

La première partie s'assure que les ordinateurs appartenant au groupe avec le guid donné sont renvoyés. La deuxième partie garantit que les ordinateurs dont le groupe primarygroupid est défini sur le primarygrouptoken donné (provenant du groupe connu) sont renvoyés.

Cette requête renvoie tous les ordinateurs du groupe!

Questions connexes