Jump to content

Benutzerattribute mittels VBScript ändern


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...