so hab ich´s jetzt auch gemacht.
22.000 Kontakte an weltweiten Standorten aus dem AD in nicht mal 30 Sekunden gezogen.
Ich liebe AutoIT
Vielen Dank noch mal.
Gruß
Cadel
so hab ich´s jetzt auch gemacht.
22.000 Kontakte an weltweiten Standorten aus dem AD in nicht mal 30 Sekunden gezogen.
Ich liebe AutoIT
Vielen Dank noch mal.
Gruß
Cadel
ja, weil du die Ausgabeattribute im _AD_GetObjectsInOU bereits angibst.
Probiers mal mit
[url='http://translation.autoit.de/onlinehilfe/intro/lang_variables.htm']
[autoit]$aResult = _AD_GetObjectsInOU($sAD_OU, "(&(objectcategory=person)(objectclass=contact))")
[/autoit]Dann ist das Ergebnis, dass es bei objectclass=user geht und bei objectclass=contact nicht.
Ich verstehs auch nicht. Einen Error bekomm ich nicht zurück, sondern einfach nur leere Variablen.
Aber eben ausschließlich bei objectclass=contact. Sogar Kalenderressourcen liefern Ergebnisse.
Meine Vermutung ist, dass das irgendwie am Exchange 2010 bzw. der 2008 Domäne liegt.
Hallo water,
jawoll, das war´s.
1) "name=*" bewirkt, dass alle Objekte angezeigt werden, außer denen wo "name" leer ist. Seltsam, aber ok. Das macht dsquery anders.
2) Wenn man die gewünschten Attribute direkt mit der Funktion _AD_GetObjectsInOU ausliest, gehts.
Wenn man die gewünschten Attribute über eine nachgelagerte For-Schleife und der Funktion _AD_GetObjectAttribute ausliest, gehts nicht.
Vielen Dank und Gruß
Cadel
Und nochmal für Google:
richtiges Beispiel
[autoit]#include <AD.au3>
_AD_Open()
$List_User = _AD_GetObjectsInOU("OU=Users,DC=domain,DC=de,"(&(objectcategory=person)(objectclass=contact)),3,"sn,TelephoneNumber")
Consolewrite($List_User[0][0])
For $i = 1 to $List_User[0][0]
Consolewrite($List_User[$i][0]&" "&$List_User[$i][1]&@CRLF)
Next
_AD_Close()
Hallo Kollegen,
zunächst von mir ein Danke. In der Zeit in der ich jetzt AutoIT benutze, war mir das Forum immer ein hilfreicher Begleiter.
Bisher fand ich es allerdings nicht als notwendig mich anzumelden.
Das hat sich bei meinem aktuellen Problem leider geändert; und ich hoffe, dass ihr mir helfen könnt.
Ich lese Kontaktdaten (Name, Telefonnummer usw.) aus dem Active Directory aus, um damit eine MySQL Datenbank zu befüllen.
Bei der Objektlasse "user" klappt das auch prima. Nun ist es aber auch möglich, Kontakte als Objekt im AD zu speichern.
Hier versagt mein Script. Konkret sieht das so aus:
#include <AD.au3>
_AD_Open()
$List_User = _AD_GetObjectsInOU("OU=Users,DC=domain,DC=de,"(&(objectcategory=person)(objectclass=user)(name=*))")
Consolewrite($List_User[0])
For $i = 1 to $List_User[0]
Consolewrite($List_User[$i]&@CRLF)
Next
_AD_Close()
Das liefert bspw 5300 Einträge und alle Benutzernamen.
#include <AD.au3>
_AD_Open()
$List_User = _AD_GetObjectsInOU("OU=Contacts,OU=Exchange,DC=domain,DC=de,"(&(objectcategory=person)(objectclass=contact)(name=*))")
Consolewrite($List_User[0])
For $i = 1 to $List_User[0]
Consolewrite($List_User[$i]&@CRLF)
Next
_AD_Close()
Das liefert zwar über die Variable $List_User[0] korrekt die Anzahl der Objekte in der OU, aber keine Ergebnisse.
Die folge ist, dass ich auch keine Attribute aus dem Objekt auslesen kann (_AD_GetObjectAttribute)
Über den ActiveDirectory Explorer bspw. sehe ich alle Objekte und deren Attribute.
Ich benutze die aktuelle UDF AD.AU3 in der Version 1.2.
Ich weiß, das ist ein sehr spezifisches Problem, aber ich hoffe, dass mir trotzdem jemand einen Schubs in die richtige Richtung geben kann.
Danke schonmal.
Gruß
Cadel