theeldar
Goto Top

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.

Content-Key: 40826

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

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

Member: DaSam
DaSam Sep 25, 2006 at 16:12:27 (UTC)
Goto Top
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
Member: TheELdar
TheELdar Sep 25, 2006 at 16:32:41 (UTC)
Goto Top
Hallo,
b.SetInfo() ist eine Idee die ich morgen Ausprobieren werden wenn ich wieder auf die AD zugreifen kann.

Ich habe uach SN und givenName ausprobiert ohne Erfolg. Hatte zur Übersicht aber nur Displayname stehen lassen.
Member: TheELdar
TheELdar Sep 26, 2006 at 06:27:58 (UTC)
Goto Top
Moin Moin Leute,
ich bin jetzt wieder seit 7 Uhr am Basteln und hatte kurz vor unserem AD Crash scheinbar Erfolg.

Set objParent = GetObject("LDAP://OU=xxx,DC=xxx,DC=xxx")
Set objUser = objParent.Create("user", "CN=" & Vorname & " " & Nachname)
objUser.Put "sAMAccountName", Benutzer
objUser.Put "userPrincipalName", Benutzer & "@xxx.xxx"
objUser.Put "givenName", Vorname & ""
objUser.Put "sn", Nachname & ""
objUser.Put "displayName", Nachname & " " & Vorname
objUser.SetInfo
objUser.SetPassword (Passwort)
objUser.AccountDisabled = False
objUser.SetInfo

Ich habe einfach in meiner Verzweiflung die Variablen durch "XXX" Ersetzt und damit hatte ich Erfolg. Ist nur noch die Frage warum Variablen nicht Einzeln akzeptiert werden.
Member: DaSam
DaSam Sep 26, 2006 at 09:15:44 (UTC)
Goto Top
Hi,

stehen in den Variablen auch wirklich ausschliesslich gültige Zeichen drin (kein CR/LF, keine NULL-Zeichenketten)?

Ganz blöd probiert: Klammere doch mal die Zeichenketten-Funktionen (Vorname & " " & Nachname) ... wer weis face-wink

cu,
Alex
Member: Bitsqueezer
Bitsqueezer Dec 06, 2006 at 09:17:25 (UTC)
Goto Top
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:

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

Viele Grüße

Christian
Member: Bitsqueezer
Bitsqueezer Dec 06, 2006 at 09:17:55 (UTC)
Goto Top
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:

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

Viele Grüße

Christian