Single Sign On Problem mit Active Directory Benutzer, die mittels VB-Skript angelegt werden
Hallo zusammen,
vor einiger Zeit sollte ich in unserem Active Directory 2003 ca. 80 Benutzer auf einmal anlegen. Dazu habe ich mich eines Skripts bedient, welches dies bequem für erledigen soll. Leider tauchen heute Probleme mit dem durchreichen der Windows Anmeldung an unser Intranet Portal auf. Diese 80 Benutzer haben bis heute ihr Benutzerkonto nicht genutzt. Ein Benutzer nutzt das Konto nun doch und soll natürlich Zugriff auf unser Intranet Portal erhalten. Dies funktioniert mittels SSO seit langer Zeit bei allen Benutzern problemlos, nur bei ihr nicht. Hier wird die Anmeldung nicht ans Portal durchgereicht, der Portalserver meldet nur zurück, dass der Benutzer nicht bekannt sei. Dies stimmt aber nicht, da der Portalserver für diesen Benutzer mittels LDAP Replikation bereits ein Konto angelegt hat (wie bei allen anderen auch).
Jetzt habe ich durch Tests festgestellt, dass alle Benutzer, die ich mittels folgendem Skript anlege, die SSO Anmeldung am Intranetportal nicht nutzen können. Lösche ich eines diese Benutzerkonto und erstelle es händisch über die AD Konsole neu, läuft alles wie geschmiert. Einstellungen sind oberflächlich diesselben.
Daher meine Frage: Was vergisst mein Skript zu tun, das anscheinend beim Anlegen des Benutzer über die AD Management Konsole gemacht wird? Gibt es noch irgendeine Einstellung, die ich vergessen habe? Irgendein Feld, welches nicht gefüllt wurde? Eine Eigenschaft, die vergessen wurde?
Vielen Dank für eure Hilfe! Ich möchte ungerne alle Benutzer händisch neu Anlegen müssen und hoffe daher sehr auf Hilfe
Hier das Skript:
vor einiger Zeit sollte ich in unserem Active Directory 2003 ca. 80 Benutzer auf einmal anlegen. Dazu habe ich mich eines Skripts bedient, welches dies bequem für erledigen soll. Leider tauchen heute Probleme mit dem durchreichen der Windows Anmeldung an unser Intranet Portal auf. Diese 80 Benutzer haben bis heute ihr Benutzerkonto nicht genutzt. Ein Benutzer nutzt das Konto nun doch und soll natürlich Zugriff auf unser Intranet Portal erhalten. Dies funktioniert mittels SSO seit langer Zeit bei allen Benutzern problemlos, nur bei ihr nicht. Hier wird die Anmeldung nicht ans Portal durchgereicht, der Portalserver meldet nur zurück, dass der Benutzer nicht bekannt sei. Dies stimmt aber nicht, da der Portalserver für diesen Benutzer mittels LDAP Replikation bereits ein Konto angelegt hat (wie bei allen anderen auch).
Jetzt habe ich durch Tests festgestellt, dass alle Benutzer, die ich mittels folgendem Skript anlege, die SSO Anmeldung am Intranetportal nicht nutzen können. Lösche ich eines diese Benutzerkonto und erstelle es händisch über die AD Konsole neu, läuft alles wie geschmiert. Einstellungen sind oberflächlich diesselben.
Daher meine Frage: Was vergisst mein Skript zu tun, das anscheinend beim Anlegen des Benutzer über die AD Management Konsole gemacht wird? Gibt es noch irgendeine Einstellung, die ich vergessen habe? Irgendein Feld, welches nicht gefüllt wurde? Eine Eigenschaft, die vergessen wurde?
Vielen Dank für eure Hilfe! Ich möchte ungerne alle Benutzer händisch neu Anlegen müssen und hoffe daher sehr auf Hilfe
Hier das Skript:
Dim objFSO, f, Zeile, Feld
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set f = objFSO.OpenTextFile ("names.txt",1,0)
Do while not f.AtEndOfLine
Zeile = f.readLine
Feld = split(Zeile,",")
PNR = Feld(0)
Nachname = Feld(1)
Vorname = Feld(2)
Abteilung = Feld(3)
Funktion = Feld(4)
Fullname = Nachname & "\, " & Vorname
Passwort = "12345"
Benutzer = left(Vorname, 1) & "." & Nachname
Call BenutzerAnlegen(Nachname,Vorname,Fullname,PNR,Stufe,Abteilung,Funktion,Passwort,Benutzer)
Loop
f.Close
Wscript.Quit(0)
Sub BenutzerAnlegen(Nachname,Vorname,Fullname,PNR,Stufe,Abteilung,Funktion,Passwort,Benutzer)
Dim objOU, objUser
Set objOU = GetObject("LDAP://OU=01_neue MA,OU=Sonderkonten,OU=User,OU=WX,DC=YZ,DC=de")
Set objUser = objOU.Create("user", "CN=" & FullName)
'create user account
objUser.Put "sAMAccountName", Benutzer
objUser.Put "userPrincipalName", Benutzer & "@YZ.de"
objUser.Put "displayName", Nachname & ", " & Vorname
objUser.Put "givenName", Vorname
objUser.Put "sn", Nachname
'objUser.Put "description", ""
objUser.Put "department", Abteilung
objUser.Put "title", Funktion
objUser.Put "initials", PNR
objUser.Put "wwwHomePage", "http://www.YZ.de"
objUser.Put "company", "Firmenname"
objUser.Put "streetAddress", "Straße"
objUser.Put "postalCode", "PLZ"
objUser.Put "l", "Ort"
objUser.Put "st", "Bundesland"
objUser.Put "c", "DE"
objUser.Put "scriptPath", "_login.bat"
objUser.Put "homeDirectory", "c:\"
objUser.SetInfo
'stuff that has to be set after account created
Const Enabled = 1
Const Disabled = 0
objUser.ConnectClientDrivesAtLogon = Disabled
objUser.ConnectClientPrintersAtLogon = Enabled
objUser.DefaultToMainPrinter = Enabled
objUser.TerminalServicesProfilePath = ""
objUser.TerminalServicesHomeDirectory = "\\DC1\wtshome$\" & Benutzer
objUser.TerminalServicesHomeDrive = "i:"
objUser.AllowLogon = Enabled
objUser.MaxDisconnectionTime = 30
objUser.MaxConnectionTime = 0
objUser.MaxIdleTime = 0
objUser.BrokenConnectionAction = Enabled
objUser.ReconnectionAction = Disabled
objUser.SetPassword Passwort
objUser.AccountDisabled = False
objUser.Put "pwdLastSet", 0
objUser.SetInfo
Const ADS_PROPERTY_APPEND = 3
'put in group "Alle Benutzer"
Set objGroup = GetObject("LDAP://cn=Alle Benutzer,OU=Gruppen1,OU=Services,OU=WX,DC=YZ,DC=de")
objGroup.PutEx ADS_PROPERTY_APPEND,"member", Array("cn=" & Fullname & ",OU=01_neue MA,OU=Sonderkonten,OU=User,OU=WX,DC=YZ,DC=de")
objGroup.SetInfo
'put in group "Gruppe 2"
Set objGroup = GetObject("LDAP://cn=Gruppe 2,OU=Sammelgruppen,OU=Gruppen2,OU=Services,OU=WX,DC=YZ,DC=de")
objGroup.PutEx ADS_PROPERTY_APPEND,"member", Array("cn=" & Fullname & ",OU=01_neue MA,OU=Sonderkonten,OU=User,OU=WX,DC=YZ,DC=de")
objGroup.SetInfo
'put in group "Gruppe 1"
Set objGroup = GetObject("LDAP://cn=Gruppe 1,OU=Gruppen1,OU=Services,OU=WX,DC=YZ,DC=de")
objGroup.PutEx ADS_PROPERTY_APPEND,"member", Array("cn=" & Fullname & ",OU=01_neue MA,OU=Sonderkonten,OU=User,OU=WX,DC=YZ,DC=de")
objGroup.SetInfo
'put in group "Terminalserver"
Set objGroup = GetObject("LDAP://cn=Terminalserver,OU=Gruppen3,OU=Services,OU=WX,DC=YZ,DC=de")
objGroup.PutEx ADS_PROPERTY_APPEND,"member", Array("cn=" & Fullname & ",OU=01_neue MA,OU=Sonderkonten,OU=User,OU=WX,DC=YZ,DC=de")
objGroup.SetInfo
'copy "_Hallo" Verzeichnis in WTSHOME
Const OverWriteFiles = True
WScript.Sleep(500)
objFSO.CopyFolder "\\DC01\wtshome$\_HALLO", "\\DC01\wtshome$\" & Benutzer
End Sub
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170889
Url: https://administrator.de/contentid/170889
Ausgedruckt am: 14.11.2024 um 23:11 Uhr
6 Kommentare
Neuester Kommentar
Zitat von @Viprex:
Vielleicht hilft folgender Hinweis: Unser Intranetportal nutzt die Standard Windows Schnittstelle um die Anmeldung durchzuwinken.
In der Logdatei steht als Fehlermeldung:
Y-Z steht hier für unseren Firmennamen (so heißt eben die Domäne, mit einem - in der Mitte).
Hilft mir (oder dir) das evtl. weiter?
Edit: Ich glaube, dass hier die Anmeldung nur mit T.Test3@Y-Z.de oder DOMÄNE\T.Test3 möglich ist. Evtl. besagt diese
Fehlermeldung, dass hier etwas durcheinander gekommen ist?
Vielleicht hilft folgender Hinweis: Unser Intranetportal nutzt die Standard Windows Schnittstelle um die Anmeldung durchzuwinken.
In der Logdatei steht als Fehlermeldung:
Cannot get login information for user = 'T.Test3', domain = 'Y-Z.de'. Cannot resolve login
> Y-Z.de\T.Test3. Error code 0x00000000.
Y-Z steht hier für unseren Firmennamen (so heißt eben die Domäne, mit einem - in der Mitte).
Hilft mir (oder dir) das evtl. weiter?
Edit: Ich glaube, dass hier die Anmeldung nur mit T.Test3@Y-Z.de oder DOMÄNE\T.Test3 möglich ist. Evtl. besagt diese
Fehlermeldung, dass hier etwas durcheinander gekommen ist?
Verstehe ich das richtig?
Euro Domäne heißt Y-Z.de ?
Und die Nutzer, die du angelegt hast schiebst du in die Domäne YZ.de ?
??
VG