depravity
Goto Top

Informationen auslesen und damit Benutzer im AD erstellen.

Hallo,

ich habe in der Schule die Aufgabe bekommen ein VBscript zu schreiben, welches zunächst verschiedene Benutzerinformationen aus einer SQL-Datenbank ausliest. Mit diesen Benutzerinformationen sollen über eine Schleife die Benutzer im Acitve Directory angelegt werden. Das Script habe ich soweit erstellt. Nur leider bekomme ich immer wieder die Fehlermeldung aus Zeile 20 "Es wurde eine ungültige dn-Syntax angegeben." Ich hoffe ihr könnt mir etwas Hilfestellung zu diesem Problem zukommen lassen.

Hier der Quellcode:

strConnection ="dbzugriff"
Set adoDataConn= CreateObject("ADODB.Connection")
adoDataConn.open strConnection
strQuery= "SELECT * FROM benutzerneu;"
Set query = adoDataConn.execute(strQuery)
strPfad = "LDAP://192.168.1.1/ou=test,dc=schule"
strAdmin = "cn=Administrator,cn=Users,dc=schule"
pwd= InputBox("Bitte geben Sie das Administratorkennwort ein:","Authentifizierung","Passwort")
Set adsNamenraum = GetObject("LDAP:")
Set adsContainer = adsNamenraum.openDSObject(strPfad,strAdmin,pwd,0)
Do While Not query.eof
benutzername = CStr(query.fields.item("benutzername"))
vorname = CStr(query.fields.item("vorname"))
nachname = CStr(query.fields.item("nachname"))
passwort = CStr(query.fields.item("passwort"))
beschreibung = CStr(query.fields.item("beschreibung"))
Set adsUser = adsContainer.Create("user", benutzername)
bla = "cn=" & benutzername
adsUser.put "sAMAccountName", bla
adsUser.setInfo
adsUser.accountDisabled = false
adsUser.sn = nachname
adsUser.givenName = vorname
adsUser.description = beschreibung
adsUser.setPassword passwort
adsUser.setInfo
query.moveNext 'Nächster Antwortdatensatz
MsgBox "Der Benutzer " & benutzername & "wurde erfolgreich angelegt."
Loop
query.close

Grüße depra

Content-ID: 147379

Url: https://administrator.de/contentid/147379

Ausgedruckt am: 25.11.2024 um 18:11 Uhr

bastla
bastla 22.07.2010 um 09:44:59 Uhr
Goto Top
Hallo depravity und willkommen im Forum!

Unter der Annahme, dass im Feld "benutzername" kein"cn=" enthalten ist, würde ich die Zeilen 17 bis 19 (ließen sich übrigens bei Verwendung von ""-Formatierung leichter lokalisieren) auf
bla = "cn=" & benutzername  
Set adsUser = adsContainer.Create("user", bla)  
adsUser.put "sAMAccountName", benutzername  
ändern ...

Grüße
bastla
depravity
depravity 22.07.2010 um 10:34:51 Uhr
Goto Top
Hallo,

genau das war der Fehler an dieser Stelle. Dankeschön für den Tipp.

Einziges Problem was jetzt noch besteht ist dass das Script bei der Quellcodezeile
"adsUser.setPassword passwort"
die Fehlermeldung "Mindestens ein Eingabeparameter ist ungültig" ausgibt.

Der Befehl an sich müsste doch richtig sein und wenn ich die Variable "Passwort" ausgeben lasse stimmt auch alles.

Grüße
depra
depravity
depravity 22.07.2010 um 14:08:12 Uhr
Goto Top
Hab den Fehler gefunden. Das Script läuft nun durch.
Nochmals dankeschön für die Hilfe!

Grüße
depra
bastla
bastla 22.07.2010 um 14:29:12 Uhr
Goto Top
Hallo dapravity!
Hab den Fehler gefunden.
Auch dafür sollst Du ja üben ... face-wink

Woran lag's denn?

Grüße
bastla
depravity
depravity 22.07.2010 um 14:46:19 Uhr
Goto Top
Also ich vermute dass die Passwörter aus der Datenbank nicht den Vorgaben aus der Default Domain Policy entsprochen haben. Nachdem ich dann etwas längere Passwörter verwendet habe ging es. Allerdings habe ich jetzt das Problem, dass die Fehlermeldung nach dem ersten Schleifendurchlauf erneut auftritt. Der erste Benutzer wird ohne Probleme angelegt und beim zweiten Benutzer bricht das Script bei adsUser.setPassword ab. Warum es das tut, daran rätsel ich gerade noch.

Grüße
depra
RedRabbit
RedRabbit 23.07.2010 um 07:19:21 Uhr
Goto Top
// edit sagt, meine Idee war Blödsinn. Sorry fürs posten.