whatzzup
Goto Top

Benutzer via VB-Script anlegen

Hallo Zusammen,

ich habe ein VB-Script zum anlegen von Benutzer in einer AD. Jetzt wollte ich noch die Möglichkeit einbauen, nach anlegen des Benutzer, auswählen zu können in welche OU dieser verschoben werden soll.

strOU = InputBox("in welche OU soll der Nutzer " & Trim(details(0)) & " angelegt werden?")  

  Set objOU = GetObject("LDAP://cn=Users,dc=schulnetz,dc=local")  
  objOU.MoveHere _
        "LDAP://ou=" & strOU & ",ou=Schule,dc=schulnetz,dc=local",vbNullString  

Mein Problem ist jetzt nun das ich die Fehlermeldung bekomme "Zugriff verweigert" mit der Zeilenangabe 74 (objOU.MoveHere _ ...). Ich bin als Admin auf dem DC (in einer VM).

Ich danke schon mal im Voraus für jede Hilfe.

Gruß

Content-ID: 202933

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

B4DschK4Pp
B4DschK4Pp 07.03.2013 um 10:47:05 Uhr
Goto Top
Hi,

strOU = InputBox("in welche OU soll der Nutzer " & Trim(details(0)) & " angelegt werden?")  

  Set objOU = GetObject("LDAP://cn=Users,dc=schulnetz,dc=local")  
  objOU.MoveHere("LDAP://ou=" & strOU & ",ou=Schule,dc=schulnetz,dc=local",vbNullString)  

Geht das?

Gruß
B4DschK4Pp
whatzzup
whatzzup 07.03.2013 um 11:03:00 Uhr
Goto Top
Ne dann kommt "Beim Aufrufen einer Unterroutine (Sub) dürfen keine Klammern verwendet werden"
B4DschK4Pp
B4DschK4Pp 07.03.2013 um 13:37:53 Uhr
Goto Top
Puh, ok. Also hier:
Habe eine Funktion gebaut, die du noch einbauen kannst.

Sub moveToOU(OUName, Username)
 On Error Resume Next

 Const ADS_SCOPE_SUBTREE = 2

 Set objOU = GetObject("LDAP://OU=" & OUName & ",OU=Schule,dc=schulnetz,dc=local")  

 Set objConnection = CreateObject("ADODB.Connection")  
 Set objCommand =   CreateObject("ADODB.Command")  
 objConnection.Provider = "ADsDSOObject"  
 objConnection.Open "Active Directory Provider"  
 Set objCommand.ActiveConnection = objConnection

 objCommand.Properties("Page Size") = 1000  
 objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  

 objCommand.CommandText = _
     "SELECT ADsPath FROM 'LDAP://dc=schulnetz,dc=local' WHERE objectCategory='user' " & _  
         "AND Name='" & Username & "'"  
 Set objRecordSet = objCommand.Execute

 objRecordSet.MoveFirst

 Do Until objRecordSet.EOF
     strADsPath = objRecordSet.Fields("ADsPath").Value  
     objOU.MoveHere strADsPath, vbNullString
     objRecordSet.MoveNext
 Loop
End Sub

Der Funktion musst du also nur noch die ZielOU mitgeben, sowie den User, der verschoben werden soll.
Also meinetwegen:
strOU = InputBox("in welche OU soll der Nutzer " & Trim(details(0)) & " angelegt werden?")   
moveToOU strOU, Trim(Details(0))

Gruß
B4DschK4Pp
whatzzup
whatzzup 07.03.2013 aktualisiert um 14:41:50 Uhr
Goto Top
Wow danke erstmal das du dir die Zeit genommen hast. Ich bekomme nur die Fehlermelung für ein Syntaxfehler bei " Sub moveToOU(OUName, Username)
B4DschK4Pp
B4DschK4Pp 07.03.2013 um 15:03:56 Uhr
Goto Top
Kann ich nicht nachvollziehen. Es funktioniert einwandfrei bei mir.
whatzzup
whatzzup 07.03.2013 um 15:26:28 Uhr
Goto Top
ich verstehe gerade auch nicht wieso es nicht klappt denn jetzt funktioniert meine alte Subfunktion auch nicht. Die hatte die Konten zu Gruppen hinzugefügt
whatzzup
whatzzup 07.03.2013 um 15:32:05 Uhr
Goto Top
ääähm ich habe gerade eine Kopie des funktionierenden Scripts gemacht und dein Code eingefügt jetzt funktioniert es ...

wieder mal vielen vielen dank
B4DschK4Pp
B4DschK4Pp 07.03.2013 um 15:50:23 Uhr
Goto Top
Als gelöst markieren nicht vergessen ;)
whatzzup
whatzzup 07.03.2013 um 15:56:31 Uhr
Goto Top
Jop die nächste Frage wird aber wahrscheinlich nicht lang auf sich warten lassen