Jump to content

Benutzer per Batchdatei anlegen


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

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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

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...