Jump to content
Sign in to follow this  
Wolfroc

Benutzerattribute mittels VBScript ändern

Recommended Posts

Guten Tag,

 

ich habe folgendes Problem ich muss ein Skript schreiben, welches die Attribute Location, StreetAdress und Company bei den Benutzern unseres Active Directorys ändert. Da wir aber auch Aussenstellen haben, sollen die Änderungen nicht bei allen Nutzern vorgenommen werden.

Vorgegebene Lösung (Abweichungen leider nicht möglich!): Beim Start des Scripts soll eine Inputbox erscheinen, in welche man die zu bearbeitende OU eingibt. Danach soll das Script in die entsprechende OU gehen und dort mittels Schleife und MsgBox alle in der OU befindlichen Nutzer mit ihrer aktuellen Konfiguration hinsichtlich StreetAdress, Location und Company anzeigen und fragen ob diese geändert werden soll.

Soweit so gut. Die Umsezung dessen ist kein Thema. Das einzige Problem vor dem ich gerade stehe ist den richtigen LDAP-Pfad auf die OU zu finden.

 

Hier mein Script (vielleicht sieht einer von euch meinen Fehler hinsichtlich des LDAP-Pfads):

 

'Deklaration und Initialisierung von Konstanten
Dim vSelectedOU

Const vCompany = "LK X"
Const vStreetAddress = "Strasse 4"
Const vLocation = "Beispielhausen"

'Aufbau einer Verbindung zum Active Directory

Set adoConnection = CreateObject("ADODB.Connection")
Set adoCommand = CreateObject("ADODB.Command")
adoConnection.Provider = "ADsDSOOBject"
adoConnection.Open "Active Directory Provider"
Set adoCommand.ActiveConnection = adoConnection

'RootDSE an Object übergeben und den Domänenname einlesen

Set objRootDSE = GetObject("LDAP://RootDSE")
strDNSDomain = objRootDSE.Get("DefaultNamingContext")

'Abfrage auf User beschränken...

strFilter = "(objectClass=user)"

'... und gewünschte Felder festlegen (sowie "subtree" für alle (Unter-)OU)

strQuery = "<LDAP://OU=LK X," & strDNSDomain & " >;" & strFilter _
   & ";distinguishedName,sAMAccountName;subtree"
adoCommand.CommandText = strQuery

'Eingabeaufforderung für die zu bearbeitende OU

vSelectedOU = "Amt" & " " & Inputbox("Bitte wählen Sie die zu bearbeitende OU: ")

'MsgBox zum überprüfen des Variablenwerts vSelectedOU
MsgBox(vSelectedOU)
'Abfrage ausführen

Set adoRecordset = adoCommand.Execute

Do Until adoRecordset.EOF

                                                'Bei diesem LDAP-Pfad liegt das Problem
			Set obj = GetObject("LDAP://OU=Benutzer, OU=" & vSelectedOU &", OU=LK X , DC=LK, DC=test, DC=de" & _
				adoRecordSet.Fields("distinguishedName"))
			obj.company = vCompany
			obj.StreetAddress = vStreetAddress
			obj.l = vLocation
			obj.SetInfo

   adoRecordSet.MoveNext
Loop

 

Bin für jede hilfreiche Antwort dankbar!

 

Mit freundlichen Grüßen

 

Timo Rauchhaus

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

Werbepartner:



×
×
  • Create New...