Gladiator 10 Geschrieben 21. März 2005 Melden Teilen Geschrieben 21. März 2005 Hey Leute, zuerst einmal Hallo, ich bin neu im Forum. Jetzt hab ich auch schon ein Problem. Ich will 400 Benutzer anlegen auf einem Server anlegen (Windows 2000 Server). Meine Clients sind W2K. Jeder Benutzer soll einen Ordner auf dem Server zur Verfügung gestellt bekommen auf den nur er und der Administrator Zugriff hat. Dieser Ordner soll bei der Anmeldung am Client automatisch als Netzlaufwerk eingebunden werden. Der Benutzer soll ebenfalls sein persönliches Windows-Profil vom Server beziehen. Außerdem will ich ein Netzlaufwerk und einen Netzwerkdrucker anlegen lassen. mfg Gladiator Zitieren Link zu diesem Kommentar
R.Ralle 10 Geschrieben 21. März 2005 Melden Teilen Geschrieben 21. März 2005 Hallo und herzlich wilkommen am Board!! :D Auch wenns nicht so nett ist, aber benutz mal die boardsuche, dafindest du alles was du brauchst ;) z.B. http://www.mcseboard.de/showthread.php?t=44490&highlight=benutzer+anlegen+per+skript :cool: Gruß Ralph Zitieren Link zu diesem Kommentar
R.Ralle 10 Geschrieben 21. März 2005 Melden Teilen Geschrieben 21. März 2005 Hi nochmal, ich mach das manchmal so : set WSHShell = CreateObject("WScript.Shell") syst = WSHShell.ExpandEnvironmentStrings("%computername%") syskw = WSHShell.ExpandEnvironmentStrings("%homedrive%") test = "test" admin = "Admin" user = "user" zahl = "15" hallo = "Ich bin es" password = "password" f2 = Inputbox("Wie soll die oberste OU heissen ? ",hallo, test) anz = Inputbox("Wieviele Arbeitsplätze hat der test ? ",hallo, zahl) if anz = "0" then wscript.quit end if if isempty(anz) then wscript.quit end if '1 OU strContainer = "" strName = f2 Set objRootDSE = GetObject("LDAP://rootDSE") If strContainer = "" Then Set objContainer = GetObject("LDAP://" & _ objRootDSE.Get("defaultNamingContext")) Else Set objContainer = GetObject("LDAP://" & strContainer & "," & _ objRootDSE.Get("defaultNamingContext")) End If Set objOrganizationalunit = objContainer.Create("organizationalUnit", "ou=" & strName) objOrganizationalunit.SetInfo 'UnterOU s for lauf = 1 to anz strContainer1 = "OU=" & f2 strName = "Platz" & lauf Set objRootDSE = GetObject("LDAP://rootDSE") If strContainer1 = "" Then Set objContainer = GetObject("LDAP://" & _ objRootDSE.Get("defaultNamingContext")) Else Set objContainer = GetObject("LDAP://" & strContainer1 & "," & _ objRootDSE.Get("defaultNamingContext")) End If Set objOrganizationalunit = objContainer.Create("organizationalUnit", "ou=" & strName) objOrganizationalunit.SetInfo next 'Admins for lauf2 = 1 to anz StrContainer1 = "OU=Platz" & lauf2 & ", " & "OU=" & f2 strName = "Admin" & lauf2 Set objRootDSE = GetObject("LDAP://rootDSE") If strContainer1 = "" Then Set objContainer = GetObject("LDAP://" & _ objRootDSE.Get("defaultNamingContext")) Else Set objContainer = GetObject("LDAP://" & strContainer1 & "," & _ objRootDSE.Get("defaultNamingContext")) End If Set objUser = objContainer.Create("user", "cn=" & strName & " " & "OU_Admin") objUser.Put "sAMAccountName", strName objUser.Put "userPrincipalName", strName objUser.Put "profilePath", "\\" & syst & "\profs\ouadmin" objUser.Put "HomeDirectory", "\\" & syst & "\home\" & strName objUser.Put "HomeDrive", "h:" objUser.setinfo objUser.SetPassword password objUser.AccountDisabled = Fales objUser.SetInfo 'user strContainer = "OU=Platz" & lauf2 strName = "user" & lauf2 Set objRootDSE = GetObject("LDAP://rootDSE") If strContainer = "" Then Set objContainer = GetObject("LDAP://" & _ objRootDSE.Get("defaultNamingContext")) Else Set objContainer = GetObject("LDAP://" & strContainer1 & "," & _ objRootDSE.Get("defaultNamingContext")) End If Set objUser = objContainer.Create("user", "cn=" & strName & " " & "OU_USER") objUser.Put "sAMAccountName", strName objUser.Put "userPrincipalName", strName objUser.Put "profilePath", "\\" & syst & "\profs\ouuser" objUser.Put "HomeDirectory", "\\" & syst & "\home\" & strName objUser.Put "HomeDrive", "h:" objUser.setinfo objUser.SetPassword password objUser.AccountDisabled = Fales objUser.SetInfo next text2 = "Es wurden alle OU`s und die Benutzer admix und userx erstellt" & vbcr msgbox text2, Vbinformatin, hallo msgbox "Alles erledigt Chef !!!", Vbinformatin, hallo ist nur n beispiel Ralph Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 21. März 2005 Autor Melden Teilen Geschrieben 21. März 2005 Hey Ralf, war klasse, hat gut funktioniert. Weißt du wie ich verschiedene Benutzernamen mit Passwort vergeben kann, in dieser Batchdatei? Wäre toll, wenn du mir das noch sagen könntest mfg Gladiator Zitieren Link zu diesem Kommentar
R.Ralle 10 Geschrieben 22. März 2005 Melden Teilen Geschrieben 22. März 2005 Hi, wenn du benutzer mit Batch anlegen willst musst du "net User" nehmen, gib mal "net help user" in der CMD ein, da findest du alles . RALPH ;) Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 22. März 2005 Autor Melden Teilen Geschrieben 22. März 2005 Guten Morgen Leute, Jetzt bringt er mir die Fehlermeldung: Zeile 19 Zeichen 1 Eine Referenzauswertung wurde vom Server zurückgesendet. Code 8007202B Quelle (null) Ich hab jetzt folgendes VBScript erstellt, könntet ihr mir vielleicht sagen, was daran falsch ist? Der Benutzername, und das Benutzerkonto werden aus einer Textdatei ausgelesen. Ralphs Vorschlag war schon Klasse, aber so wäre es noch ein wenig besser. Ich poste hier mal den Quelltext: Danke schon mal, Leute. Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=Benutzerprofile,DC=EDV.local,DC=EDV") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@EDV.EDV.local" b.Put "profilePath", "\\Server\Benutzerprofile\" & Benutzer b.Put "homeDirectory", "\\Server\Home\" & Benutzer b.Put "homeDrive", "H:" b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 22. März 2005 Melden Teilen Geschrieben 22. März 2005 Wenn deine Domain EDV.EDV.local ist, sollte es so gehen Set ouo = GetObject("LDAP://OU=Benutzerprofile,DC=EDV,DC=EDV,DC=local") thorgood Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 22. März 2005 Autor Melden Teilen Geschrieben 22. März 2005 Guten Morgen, die Idee war gut, aber leider wars das nicht. Meine Domain ist EDV.local, meine TopLevelDomain müßte dann EDV sein. Wenn ich es nach deinem Vorschlag mache, bekomme ich diese Meldung: Object ist auf dem Server nicht vorhanden. Dein Gedankengang war richtig, aber hat nichts gebracht, leider. Ich hab das Script so nochmal im Internet gefunden, hat wohl mein Arbeitskollege heruntergeladen, und mir gegeben, ich poste mal das Original, vielleicht hilfts weiter. Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=OrganisationUnit,DC=DomainName,DC=TopLevelDomain") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@DomainName.TopLevelDomain" b.Put "profilePath", "\\Server\daten\profile\" & Benutzer b.Put "homeDirectory", "\\Server\daten\home\" & Benutzer b.Put "homeDrive", "H:" b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 22. März 2005 Melden Teilen Geschrieben 22. März 2005 Nein andersherum. Bei einer Domain EDV.local ist local die TLD also Set ouo = GetObject("LDAP://OU=Benutzerprofile,DC=EDV,DC=local") thorgood Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 22. März 2005 Autor Melden Teilen Geschrieben 22. März 2005 Hey, KLASSE hat funktioniert . Super. Eine Frage zum Abschluss: Er legt mir keinen neuen Ordner in Benutzerprofile & Home an, bringt aber auch keine Fehlermeldung. Die Benutzer werden normal in der OU im AD angelegt. Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 22. März 2005 Melden Teilen Geschrieben 22. März 2005 Du führst am Ende des Scripts die verz.cmd aus. Was ist der Inhalt dieser Datei ? thorgood Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 22. März 2005 Autor Melden Teilen Geschrieben 22. März 2005 Der Inhalt sollte einen Ordner erstellen: md /L echo J | cacls /C /E /G Administratoren:F echo J | cacls /C /E /G EDV.local echo J | cacls /C /E /R Jeder md echo J | cacls /C /E /G Administratoren:F echo J | cacls /C /E /G EDV.local echo J | cacls /C /E /R Jeder Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 22. März 2005 Melden Teilen Geschrieben 22. März 2005 Da fehlt ja eine Menge. Hast du schon den Beitrag gelesen. http://www.mcseboard.de/showthread.php?t=13316 thorgood Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 22. März 2005 Autor Melden Teilen Geschrieben 22. März 2005 Ich hab jetzt die Verz.cmd probiert, funzt aber net richtig. Ich hab mein Homeverzeichnis & meine Benutzerprofile auf dem Server im Stammverzeichnis von D: liegen. Schau dir bitte mal an was ich da falsch mache, auch in der vbs Datei. Vielleicht denke ich auch zu kompliziert: Dim fso, f, Zeile, Feld Set fso = CreateObject("Scripting.FileSystemObject") Set f = fso.OpenTextFile ("user.txt",1,0) Do while not f.AtEndOfLine Zeile = f.readLine Feld = split(Zeile,",") Benutzer = Feld(0) Vorname = Feld(1) Nachname = Feld(2) Passwort = Feld(3) Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Loop f.Close Wscript.Quit(0) Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Dim ouo, b Set ouo = GetObject("LDAP://OU=Schüler,DC=EDV,DC=local") Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@EDV.local" b.Put "profilePath", "\\Server\Benutzerprofile\" & Benutzer b.Put "homeDirectory", "\\Server\Home\" & Benutzer b.Put "homeDrive", "D:" b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo WScript.Sleep(1000) ret = WshShell.Run ("verz.cmd " & Benutzer,0,1) End Sub Verz.cmd: md \\Server\Home\%1 echo J | cacls \\server\Home\%1 /C /E /G Administratoren:F echo J | cacls \\server\Home\%1 /C /E /G EDV\%1:F echo J | cacls \\server\Home\%1 /C /E /R Jeder md \\SERVER\Benutzerprofile\%1 echo J | cacls \\server\Benutzerprofile\%1 /C /E /G Administratoren:F echo J | cacls \\server\Benutzerprofile\%1 /C /E /G EDV\%1:F echo J | cacls \\server\Benutzerprofile\%1 /C /E /R Jeder Danke schon mal im voraus. Zitieren Link zu diesem Kommentar
Gladiator 10 Geschrieben 22. März 2005 Autor Melden Teilen Geschrieben 22. März 2005 GESCHAFFT!!!! Funktioniert. Jetzt hab ich nur noch ein Problem: Wenn ich mich mit einem erstellten Benutzernamen anmelden will bekomme ich folgende Meldung: Ihre Richtlinien erlauben es Ihnen nicht sich interaktiv anzumelden! Schon mal gehört? Ist mir ehrlich gesagt neu. Kannst du mir da noch mal helfen? Danke schon mal. mfg Gladiator Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.