hio
wie würde man alle benutzer aus allen OUs auslesen?
Danke und Gruß
GerhardSchr
hio
wie würde man alle benutzer aus allen OUs auslesen?
Danke und Gruß
GerhardSchr
$aUsers = _AD_GetObjectsInOU("", "(&(objectcategory=person)(objectclass=user))", 2, "sAMAccountName,distinguishedName,displayname")
hmm leider nicht
als erster parameter muss doch ein "ziel array" angegeben werden oder?
hmm leider nicht
als erster parameter muss doch ein "ziel array" angegeben werden oder?
Hängt von der Version ab die Du verwendest. Ich habe die Art der Datenrückgabe vereinheitlicht und somit ByRef eliminiert. D.h. die obige Syntax ist die aktuelle
finde ich auch besser so
also muss ich mir die udf hier nochmal runterladen?: http://www.autoitscript.com/forum/index.php?showtopic=106163
Genau.
Und wirf bitte einen Blick in die History.txt, damit Du siehst, was sich sonst noch verändert hat von Deiner zur aktuellen Version.
ok vielen dank!
hallo
_AD_GetObjectsInOU ist schön schnell, nur um die sid's umzuwandeln muss ich die entsprechende spalte mit dem "langsamen" _AD_GetObjectProperties bearbeiten?
danke und gruß
GerhardSchr
Du kannst Dir ja selbst eine Funktion zur Konvertierung der SID in eine lesbare Form schreiben. Kopiere einfach die Zeilen ab
[autoit]ElseIf $oAD_Item.ADsType = $ADSTYPE_OCTET_STRING Then
[/autoit]
in Deine eigene Funktion.
Und schon geht es schneller
Das englische Forum hat auch ein paar Konvertierungsroutinen.
ok werde mal das internet und das englische forum durchsuchen
THX
Version 0.37 ist freigegeben. Ab nächsten Montag bin ich für 2 Wochen im Urlaub, daher die Freigabe einige Tage vorher um Fehler noch rechtzeitig beheben zu können.
Der Link für den Download findet sich in der Signatur.
Gibts ne Möglichkeit die extended-Rückmeldung bei AD-Anmeldung sichtbar zu machen?
Hier mein Problem aus meinem anderen Beitrag, was aber direkt hiermit zu tun hat:
Bei Tests mit einem Netzwerksniffer stelle ich fest, daß er bei folgendem Script die erweiterten Fehlermeldung aufzeichnet:
[autoit]Global $objDSO = ObjGet ("LDAP:")
Const $ADS_SERVER_BIND= 512 ;0x200
Global $username = "DOMAIN\Username"
Global $Passwort = "secret"
$obj1 = $objDSO.OpenDSObject("LDAP://xxx.xxx.xxx.xxx", $username, $Passwort, $ADS_SERVER_BIND)
So ähnlich wird auch im adfunctions.au3 die Anmeldung absolviert...
Die Rückmeldung mit falschen Userdaten, die das LDAP an das Autoit-Script sendet:
Result: Status: Invalid Credentials, MatchedDN: NULL, ErrorMessage: 80090308: LdapErr: DSID-0C090334, comment: AcceptSecurityContext error, data 52e, vece
Ich bekomm nur leider die Meldung im Autoit nicht sichtbar - hat hier jemand ne Idee?
Ich brauch den Hex-Code, welcher in der Result-Zeile rechts neben "data" und links neben "vece" steht
Aus den erweiterten Fehlermeldungen kann man nützliche Dinge ableiten.
Diese sind im Beispiel:
525 - user not found
52e - invalid credentials
530 - not permitted to logon at this time
532 - password expired
533 - account disabled
701 - account expired
773 - user must reset password
Gibts ne andere Methode statt $objDSO.OpenDSObject für das LDAP-Objekt, wie ich den Fehlercomment darstellen kann?
Mir ist leider auch keine andere Methode bekannt. Ich habe mich - mit meinen bescheidenen Kenntnissen auf diesem Gebiet - durch das Internet gekämpft. Leider ohne Erfolg.
Es scheint niemand eine wirklich ordentliche Fehlerbehandlung durchzuführen. Mehr als "On Error Resume Next" ist nicht zu bekommen.
Das Forum ist da leider auch nicht hilfreich und die Suche nach analogen Visual Basic Beispielen bringt leider auch nur das Err-Object. Dieses Err Object wird in AutoIt (fast vollständig) nachgebildet (siehe AutoIt Hilfe).
Vielleicht solltest Du mal einen AutoIt Entwickler kontaktieren.
Falls Du was findest, ich wäre sehr interessiert das Error handling des AD UDFs zu erweitern.
Vielleicht solltest Du mal einen AutoIt Entwickler kontaktieren.Falls Du was findest, ich wäre sehr interessiert das Error handling des AD UDFs zu erweitern.
Hi water,
genau dies habe ich heute früh gemacht siehe auf der offiziellen autoitseite Ticket 1516.
Ich hoffe, die kommen weiter.
Das Problem hier scheint zu sein, daß der errorstring nur ne Übersetzung zum error-hex ist, darin aber keine comment-Zeilen des eigentlichen LDAP-Return-Strings zu finden sein können.
Der eigentliche Return-String scheint lt. meinem gegoogle nur bei java/php auswertbar zu sein, da die Bibliothek dort selbst so programmiert ist, daß sie den String zurückgibt (und nicht nur einen einzelnen Hex-Wert)
Beispiel
Das Problem muss doch auch bei vielen anderen DllCalls u.ä. auftauchen - ich kann mir nicht vorstellen, daß da keiner in der Lage ist den String auswertbar zu machen - ich suche wohl nach den falschen Begriffen...
Siehe auch Tread 143348 hier im Forum, da hab ichs mit DllCall probiert...
Super, dann hoffen wir, dass die DEVs 'ne Lösung haben!
hi water,
es wäre prima, wenn du in dem Ticket einen kleinen sinnvollen Kommentar hinterlassen könntest, der die Dringlichkeit der gesamten Problematik unterstützt.
Es sollte sich hier allerdings nicht unbedingt nur um die AD-Abfragen handeln, eventuell hast du noch eine andere Stelle, wo du die erweiterten Rückmeldestrings benötigst.
Dann hätten die DEVs noch mehr Möglichkeiten der Ursachensuche...
Habe bei Deinem Ticket einen Kommentar hinterlassen. Leider brauche ich es - derzeit - nur für das AD UDF, daher der Hinweis darauf.
Wenn du am Text was geändert haben möchtest, melde Dich einfach.
ne ne - passt schon...
Danke für deinen Eintrag - vielleicht bringts was...
hui ne neue version, werde ich mal im laufe der tage antesten
danke!
Zuerst mal: Super arbeit, sieht wirklich Klasse aus und hätte es sicher verdient eine UDF zu werden die zur Standardinstallation gehört.
Leider steht mir keine AD zum Testen zur Verfügung, wollte aber ein paar Verbesserungen für eine Funktion loswerden.
Es geht um AD_JoinComputer
Der Computername könnte optional sein, wird keiner angegeben so wird der Name des Rechners genommen auf dem das Script ausgeführt wird.
Zusätzlich könnten Flags die Nutzung erleichtern.
Beispielsweise:
1 - Wenn das Computerkonto bereits existiert, wird es zunächst gelöscht
2 - Erstelle das Computerkonto, falls keins existiert (in der Standard OU "Computers")
Flags können addiert werden.
"The JoinDomainOrWorkgroup method is available only on Windows XP computer and Windows Server 2003 or later." Ist damit gemeint das die Funktion nur unter XP oder höher funktioniert? Wäre eine erweiterung für w2k möglich?
Hab ich es nur übersehen oder fehlt das "Gegenteil" der Funktion also _JoinWorkgroup?