2009-05-05 6 views
1

J'ai un ensemble de 10 groupes AD. Qu'est-ce que je voudrais est de savoir par programme quels utilisateurs dans le domaine AD ne sont pas membres de ces 10 groupes. Il n'y a qu'un seul domaine. Je sais qu'il est possible d'effectuer des requêtes ADO SQL dans un vbscript mais je me demandais (en espérant, en priant) si quelqu'un avait un script en conserve?Active Directory - un script pour trouver tous les utilisateurs qui ne sont pas dans un ensemble de groupes?

Je suppose que d'une manière hacky pourrait être:

  1. Vidage de tous les utilisateurs des 10 groupes
  2. Vidage de tous les utilisateurs du domaine
  3. Exécuter un windiff sur les 2 dépotoirs

Des idées?

+0

windiff vient de réaliser ne fonctionnerait pas parce que les deux décharges ne sont pas nécessairement dans le même format et pourraient avoir des lignes vides dans divers endroits. Dieu, je voudrais utiliser Unix. – PowerApp101

Répondre

3

Pour toute personne intéressée, cela a fonctionné:

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

System.DirectoryServices permet d'écrire des requêtes LDAP. quelque chose comme ceci: (& (objectclass = Utilisateur) (! memberof = cn = groupe1, ...) (! memberof = cn = groupe2, ...) (! memberof = cn = groupe3, ...))

Chaque membre de condition doit être explicite, je crois. Je réponds rapidement, je n'ai donc pas 100% du code pour vous montrer.

+0

Les valeurs négatives doivent être placées entre parenthèses, c'est à dire (& (objectclass = Utilisateur) (! (Memberof = cn = groupe1, ...)) (! (Memberof = cn = groupe2, ...)) (! (Memberof = cn = group3, ...))) - voir http://www.ietf.org/rfc/rfc2254.txt pour plus d'informations. – grantc

Questions connexes