AD User Vorname Nachname mit Script eintragen
Hallo Leute,
ich suche mir beim Tippen in Google schon länger die Finger wund und versuche nun hier Hilfe zu bekommen.
Ich möchte aus einer Access Datenbank Herraus User im AD 2003 anlegen. Das klappt auch soweit ganz gut. Nur scheitere ich beim Eintrage von Vorname und Nachname da bekomme ich immer wieder die Fehlermeldung Automatisierungsfehler.
CODE:
Sub BenuntzerAnlegen(Benutzer, Vorname, Nachname, Passwort)
Dim ouo, b
Set ouo = GetObject("LDAP://OU=XXX,DC=XXX,DC=XXX")
Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)
b.Put "sAMAccountName", Benutzer
b.Put "userPrincipalName", Benutzer & "@XXX.XXX"
b.Put "displayName", Vorname & " " & Nachname
b.SetInfo
b.SetPassword Passwort
b.AccountDisabled = False
b.SetInfo
End Sub
Das Script legt den User richtig in der AD an aber leider ohne Vornamen und so. Wie kann ich sowas eintragen oder wo liegt mein Fehler, dass er im Code von oben den "displayName" nicht einträgt.
Danke für die Hilfe.
ich suche mir beim Tippen in Google schon länger die Finger wund und versuche nun hier Hilfe zu bekommen.
Ich möchte aus einer Access Datenbank Herraus User im AD 2003 anlegen. Das klappt auch soweit ganz gut. Nur scheitere ich beim Eintrage von Vorname und Nachname da bekomme ich immer wieder die Fehlermeldung Automatisierungsfehler.
CODE:
Sub BenuntzerAnlegen(Benutzer, Vorname, Nachname, Passwort)
Dim ouo, b
Set ouo = GetObject("LDAP://OU=XXX,DC=XXX,DC=XXX")
Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)
b.Put "sAMAccountName", Benutzer
b.Put "userPrincipalName", Benutzer & "@XXX.XXX"
b.Put "displayName", Vorname & " " & Nachname
b.SetInfo
b.SetPassword Passwort
b.AccountDisabled = False
b.SetInfo
End Sub
Das Script legt den User richtig in der AD an aber leider ohne Vornamen und so. Wie kann ich sowas eintragen oder wo liegt mein Fehler, dass er im Code von oben den "displayName" nicht einträgt.
Danke für die Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 40826
Url: https://administrator.de/forum/ad-user-vorname-nachname-mit-script-eintragen-40826.html
Ausgedruckt am: 11.04.2025 um 08:04 Uhr
6 Kommentare
Neuester Kommentar
Hi,
mach doch mal hinter jeder Property-Änderung ein b.SetInfo(), evtl. kann man den DisplayName erst setzen, wenn das Objekt tatsächlich exestiert.
BTW: Wenn Du schon Vor- und Nachnamen hast, warum setzt Du dann nicht auch die "SN" und "givenName"? Es gibt ja auch eine "Regel" im ADS, wie sich der Displayname aus SN und givenName zusammensetzt, wenn das Objekt erstellt wird ... das ist vielleicht auch der Grund, warum das Objekt evtl. vornaden sein muss ...
cu,
Alex
mach doch mal hinter jeder Property-Änderung ein b.SetInfo(), evtl. kann man den DisplayName erst setzen, wenn das Objekt tatsächlich exestiert.
BTW: Wenn Du schon Vor- und Nachnamen hast, warum setzt Du dann nicht auch die "SN" und "givenName"? Es gibt ja auch eine "Regel" im ADS, wie sich der Displayname aus SN und givenName zusammensetzt, wenn das Objekt erstellt wird ... das ist vielleicht auch der Grund, warum das Objekt evtl. vornaden sein muss ...
cu,
Alex
Hallo !
ich hatte gestern genau das gleiche Problem, konnte es beheben, indem ich die Variableninhalte mit einem "CStr" umklammert habe. Hierbei wird ein String, wie in C üblich, mit NULL terminiert.
Danach klappt es mit allen Werten.
In Deinem Code müßte es also sein:
Viele Grüße
Christian
ich hatte gestern genau das gleiche Problem, konnte es beheben, indem ich die Variableninhalte mit einem "CStr" umklammert habe. Hierbei wird ein String, wie in C üblich, mit NULL terminiert.
Danach klappt es mit allen Werten.
In Deinem Code müßte es also sein:
Set objParent = GetObject("LDAP://OU=xxx,DC=xxx,DC=xxx")
Set objUser = objParent.Create("user", "CN=" & Vorname & " " & Nachname)
objUser.Put "sAMAccountName", CStr(Benutzer)
objUser.Put "userPrincipalName", CStr(Benutzer & "@xxx.xxx")
objUser.Put "givenName", CStr(Vorname)
objUser.Put "sn", CStr(Nachname)
objUser.Put "displayName", CStr(Nachname & " " & Vorname)
objUser.SetInfo
objUser.SetPassword (Passwort)
objUser.AccountDisabled = False
objUser.SetInfo
Set objUser = objParent.Create("user", "CN=" & Vorname & " " & Nachname)
objUser.Put "sAMAccountName", CStr(Benutzer)
objUser.Put "userPrincipalName", CStr(Benutzer & "@xxx.xxx")
objUser.Put "givenName", CStr(Vorname)
objUser.Put "sn", CStr(Nachname)
objUser.Put "displayName", CStr(Nachname & " " & Vorname)
objUser.SetInfo
objUser.SetPassword (Passwort)
objUser.AccountDisabled = False
objUser.SetInfo
Viele Grüße
Christian
Hallo !
ich hatte gestern genau das gleiche Problem, konnte es beheben, indem ich die Variableninhalte mit einem "CStr" umklammert habe. Hierbei wird ein String, wie in C üblich, mit NULL terminiert.
Danach klappt es mit allen Werten.
In Deinem Code müßte es also sein:
Viele Grüße
Christian
ich hatte gestern genau das gleiche Problem, konnte es beheben, indem ich die Variableninhalte mit einem "CStr" umklammert habe. Hierbei wird ein String, wie in C üblich, mit NULL terminiert.
Danach klappt es mit allen Werten.
In Deinem Code müßte es also sein:
Set objParent = GetObject("LDAP://OU=xxx,DC=xxx,DC=xxx")
Set objUser = objParent.Create("user", "CN=" & Vorname & " " & Nachname)
objUser.Put "sAMAccountName", CStr(Benutzer)
objUser.Put "userPrincipalName", CStr(Benutzer & "@xxx.xxx")
objUser.Put "givenName", CStr(Vorname)
objUser.Put "sn", CStr(Nachname)
objUser.Put "displayName", CStr(Nachname & " " & Vorname)
objUser.SetInfo
objUser.SetPassword (Passwort)
objUser.AccountDisabled = False
objUser.SetInfo
Set objUser = objParent.Create("user", "CN=" & Vorname & " " & Nachname)
objUser.Put "sAMAccountName", CStr(Benutzer)
objUser.Put "userPrincipalName", CStr(Benutzer & "@xxx.xxx")
objUser.Put "givenName", CStr(Vorname)
objUser.Put "sn", CStr(Nachname)
objUser.Put "displayName", CStr(Nachname & " " & Vorname)
objUser.SetInfo
objUser.SetPassword (Passwort)
objUser.AccountDisabled = False
objUser.SetInfo
Viele Grüße
Christian