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-Key: 202933

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

Printed on: April 19, 2024 at 23:04 o'clock

Member: B4DschK4Pp
B4DschK4Pp Mar 07, 2013 at 09:47:05 (UTC)
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
Member: whatzzup
whatzzup Mar 07, 2013 at 10:03:00 (UTC)
Goto Top
Ne dann kommt "Beim Aufrufen einer Unterroutine (Sub) dürfen keine Klammern verwendet werden"
Member: B4DschK4Pp
B4DschK4Pp Mar 07, 2013 at 12:37:53 (UTC)
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
Member: whatzzup
whatzzup Mar 07, 2013 updated at 13:41:50 (UTC)
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)
Member: B4DschK4Pp
B4DschK4Pp Mar 07, 2013 at 14:03:56 (UTC)
Goto Top
Kann ich nicht nachvollziehen. Es funktioniert einwandfrei bei mir.
Member: whatzzup
whatzzup Mar 07, 2013 at 14:26:28 (UTC)
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
Member: whatzzup
whatzzup Mar 07, 2013 at 14:32:05 (UTC)
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
Member: B4DschK4Pp
B4DschK4Pp Mar 07, 2013 at 14:50:23 (UTC)
Goto Top
Als gelöst markieren nicht vergessen ;)
Member: whatzzup
whatzzup Mar 07, 2013 at 14:56:31 (UTC)
Goto Top
Jop die nächste Frage wird aber wahrscheinlich nicht lang auf sich warten lassen