2009-05-05 3 views
1

Ich habe eine Gruppe von 10 AD-Gruppen. Ich möchte programmgesteuert herausfinden, welche Benutzer in der AD-Domäne NICHT Mitglieder dieser 10 Gruppen sind. Es gibt nur eine Domain. Ich weiß, dass es möglich ist, ADO-SQL-Abfragen in einem VBScript auszuführen, aber ich habe mich gefragt (hoffend, betet), ob jemand ein Skript in Dosen hatte.Active Directory - ein Skript, um alle Benutzer zu finden, die nicht in einer Gruppe von Gruppen sind?

nehme ich ein hacky Weg sein könnte:

  • Dump
  • aus den 10 Gruppen alle Benutzer aus der Domäne
  • Führen Sie einen windiff alle Benutzer
    1. Dump auf die 2

    Dumps Irgendwelche Ideen?

  • +0

    nur realisiert windiff würde, weil nicht arbeiten die beiden Deponien nicht notwendigerweise im gleichen Format sind und möglicherweise Leerzeilen an verschiedenen Orten haben. Gott ich wünschte ich hätte Unix benutzt. – PowerApp101

    Antwort

    3

    Für alle Interessierten, dies gearbeitet:

    (&(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 bietet die Möglichkeit, LDAP-Abfragen zu schreiben. etwas wie dieses: (& (objectclass = Benutzer) (! memberof = cn = group1, ...) (! memberof = cn = group2, ...) (! memberof = cn = group3, ...))

    Jedes Glied der Bedingung muss explizit angegeben werden, glaube ich.

    Ich antworte nur schnell, also habe ich nicht 100% des Codes, um Ihnen zu zeigen.

    +0

    Negierte Werte müssen in Klammern stehen, dh (& (objectclass = Benutzer) (! (Memberof = cn = group1, ...)) (! (Memberof = cn = group2, ...)) (! (Memberof = cn = group3, ...))) - siehe http://www.ietf.org/rfc/rfc2254.txt für weitere Informationen. – grantc