Jump to content

Viele Benutzer per Script anlegen


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

Recommended Posts

Hallo zusammen,

 

hab deinen Tipp versucht aber irgendwi will er nicht so recht.

 

 

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)

Mail = Feld(4)

GroupString = Feld(5)

Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort,Mail)

Loop

f.Close

Wscript.Quit(0)

 

Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort,Mail)

Dim ouo, b

Set ouo = GetObject("LDAP://OU=Benutzer,DC=playboy83,DC=de")

Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)

Dim WshShell, ret

Set WshShell = WScript.CreateObject("WScript.Shell")

b.Put "sAMAccountName", Benutzer

b.Put "userPrincipalName", Benutzer & "@playboy83.de"

b.Put "mail", Mail & "@playboy83.de"

b.Put "profilePath", "\\windows2003dc\daten\profile\" & Benutzer

b.Put "homeDirectory", "\\windows2003dc\daten\home\" & Benutzer

b.Put "homeDrive", "f:"

b.Put "c", "DE"

b.Put "co", "DEUTSCHLAND"

b.Put "l", "Stadt"

b.Put "postalCode", "PLZ"

b.Put "postOfficeBox", "Postfach"

b.Put "st", "Bundesland"

b.Put "streetAddress", "Strasse Zeile 1" & vbCrlf & "Strasse Zeile 2" & vbCrlf

b.SetInfo

b.SetPassword Passwort

b.AccountDisabled = False

b.Put "pwdLastSet", 0

b.SetInfo

b.Put "TerminalServicesHomeDirectory", "\\windows2003dc\Daten\TS\home"

b.Put "TerminalServicesHomeDrive", "t:"

b.Put "TerminalServicesProfilePath", "\\windows2003dc\daten\TS\Profile"

b.SetInfo

WScript.Sleep(1000)

ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)

Set GroupObj = GetObject("WinNT://playboy83/" & GroupString)

GroupObj.Add ("WinNT://playboy83/" & Benutzer)

Set DomainObj = Nothing

Set GroupObj = Nothing

End Sub

 

Fehlermeldung: Zeile 46 Zeichen 1

Das angegebene Verzeichnisdienstattribut bzw. der angegebene Verzeichnisdienstwert ist bereits vorhanden :confused:

 

Woran kann das wieder liegen

 

Sorry

 

CoolAce

Link to comment
  • 5 weeks later...

Hi,

 

danke für dieses script. habe es jetzt mal ausprobiert und es funktioniert soweit, bis auf die tatsache, dass nur der erste benutzer aus der "user.txt" angelegt wird.

 

so sieht die *.vbs aus

 

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://CN=Users,DC=oekonet,DC=intra")
Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)
Dim WshShell, ret
Set WshShell = WScript.CreateObject("WScript.Shell")
b.Put "sAMAccountName", Benutzer
b.Put "userPrincipalName", Benutzer & "@oekonet.intra"
b.Put "profilePath", "\\testserver\daten\profile\" & Benutzer
b.Put "homeDirectory", "\\testserver\daten\home\" & Benutzer
b.Put "homeDrive", "U:"
b.SetInfo
b.SetPassword Passwort
b.AccountDisabled = False
b.SetInfo
WScript.Sleep(1000)
ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)
End Sub

 

und die user.txt sieht so aus

 

hmuster,Hans,Muster,xxx
ssorglos,Sabiene,Sorglos,xxx

etc...

 

 

sehe da irgendwie keinen Fehler,oder ist diese script nur für w2k3 und nicht für w2k geeignet?

 

gruß

 

heinzelrumpel

Link to comment
  • 3 weeks later...

Habe vor langer Zeit (2 Jahren) mal ein Script geschrieben das von einer Text Datei die Benutzernamen ausliest, den Account im Active Direcory erstellt und gleichzeitig Homelaufwerk, Profile Pfad und Ordner erstellt. Hab es ebenfass in der Schule benötigt.

 

Das schwierigste war das Ordner erstellen, weil das keine LDAP Sache ist, sondern eine Sache des Betriebssystems, und dann sollten die Zugriffsrechte für die einzelnen Benutzer passen.

 

So weit ich mich noch erinnern kann, werd ich dir mal meine Scripts erklären, die du im Anhang findest:

+ 'ADsSecurity.dll' musst du mit ADsSecurity.bat oder manuell registrieren, ich weis nicht mehr ob die DLL für LDAP oder für die Zugriffsrechte zuständigi ist

+ mit 'AccessMask.vbs' hab ich das ertellen der Ordner und die passenden Zugriffsrechte getestet

+ 'Info erstellen.vbs' erstellt einen Datei Namens 'Info Liste.txt' und schreibt Informationen einer bestimmten OU rein

+ 'Benutzer anlegen.vbs' legt die Benutzer im AD an, die in der Datei 'Benutzer.txt' stehen

+ in der Datei 'ReadMe.txt' steht, wie die Benutzer in der Datei 'Benutzer.txt' stehen muss

 

 

viel Spaß beim testen

coly

Link to comment

Für alle die sich erfolglos oder krampfhaft mit der Scripterstellung herumschlagen ...

 

Ich habe ein kleines Freeware-Tool entwickelt das euch automatisch ein passendes VB-Script generiert.

Das Script kann völlig separat (ohne User.txt und Verz.cmd) weitergegeben bzw. verwendet werden. Das Tool liest Benutzerbequem aus einer Excel Arbeitsmappe ein. Diese werden dann als Array direkt in der VBS Datei gespeichert.

 

Pro User können 4 Gruppen angegeben werden, in denen er (zusätzlich zu den Dom-Benutzern) Mitglied werden soll.

 

Für jeden User kann festgelegt werden ob der Konto in CN=USERS oder einer beliebigen OU angelegt werden soll.

 

Gruppen und OU's werden erstellt, falls nicht vorhanden.

 

Das Tool ist Plugin-fähig.

Ideen die weitere Script-Plugins nehme ich gern entgegen.

 

 

Ich bedanke mich für die wirklich guten Informationen die ich in diesem Thread gefunden habe ...

 

Damit ich nicht ein Thema in Foren diskutieren muss, könnt ich den aktuellen Stand in diesem Thread auf http://www.delphipraxis.net verfolgen.

 

Noch ein kleiner Tip für alle die es verwenden wollen:

Der Container des Benutzerkontos wird in der Excel-Tabelle eingegeben (Spalte OU).

Wenn in der Spalte kein Wert steht, landet das Konto in CN=USERS, Falls ihr einen anderen Ziel-Contailer verwenden/anlegen wollt, gebt bitte nicht OU=MeineOU ein, sondern nur MeineOU . das OU= fügt mein Tool von selbst hinzu.

 

Schöne Grüße,

Jens

Link to comment

...

Do while not f.AtEndOfLine

Zeile = f.readLine

Feld = split(Zeile,",")

Benutzer = Feld(0)

Vorname = Feld(1)

Nachname = Feld(2)

Passwort = Feld(2)

Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort)

Loop

f.Close

Wscript.Quit(0)

...

thorgood

 

... so ganz nebenbei lerne ich einen SPLIT-Befehl. :D

 

Vorher habe ich mühsam (und wenig elegant) die Zeilen ausgelesen und die Trennzeichen als

[Nr Anfangszeichen + 1] verwendet.

 

Vielen Dank, thorgood!!!

 

cu

hoshi

Link to comment

hallo

 

ich habe eben das erwähnte script auf einem W3 Server getestet und es funktioniert wunderbar... weiss jemand wie man in den properties eines jeden users noch automatisch zusätzliche informationen hinterlegen kann wie name, vorname, firma etc? dass mann alle users markieren kann und gewisse sachen zentral ändern das weiss ich. was ich wahrscheinlich bräuchte ist eine liste der objects, die in diesem script benutzt werden können... da bin ich stecken geblieben...

 

für eure hilfe danke ich euch schon mal im voraus!

 

switzly

Link to comment
  • 3 months later...

hallo,

 

das scipt ist hier ja echt genial. mein problem ist nur, das ich zu den normalen benutzerangaben auch noch RAS Optionen setzen muss. Also das dem Benutzer die RAS / Dial In Einwahl erlaubt ist ( also auf Allow steht und ich muss dem User eine IP Adresse direkt zuweisen. Jemand ne Idee??

 

grüße,

SReim

Link to comment
  • 1 month later...
Hallo,

 

hab das Script auch mal versucht und hab noch ein Problem:

 

Script: c:\create_user.vbs

Line: 26

Char: 1

Error: The Object Already Exists.

Code: 80071392

Soure: (null)

 

Hier mein Script in leicht geändertert Form:

 

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=Benutzer,DC=itforum,DC=OS52,DC=de")

Set b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)

Dim WshShell, ret

Set WshShell = WScript.CreateObject("WScript.Shell")

b.Put "sAMAccountName", Benutzer

b.Put "userPrincipalName", Benutzer & "@itforum.os52.de"

b.Put "profilePath", "\\fthw9crc\daten\profile\" & Benutzer

b.Put "homeDirectory", "\\fthw9crc\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

 

Hat jemand vielleicht nen Tip

 

Danke

und grüsse

ghostr

 

Was war der Fehler? :confused: hab den gleichen.....

Link to comment
  • 2 weeks later...

Hallo Leute,

 

ich bekomme es nicht wirklich hin.

 

mein Script, newuser.vbs

 

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://CN=users,DC=webserver,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 "userPrincipalName", Benutzer & "@webserver.local"

b.Put "profilePath", "\\w2003stand\profile$\" & Benutzer

b.Put "homeDirectory", "\\w2003stand\home$\" & Benutzer

b.Put "homeDrive", "U:"

b.SetInfo

b.SetPassword Passwort

b.AccountDisabled = False

b.SetInfo

WScript.Sleep(1000)

ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)

End Sub

 

Ich bekomme die Fehlermeldung

 

Zeile 28,

Objekt schon vorhanden

 

Was mache ich falsch ??

Link to comment
  • 1 month later...

hy zusammen

 

das script ist echt genial!! danke vielmal an alle die mitgewirkt haben!

 

Habe nun aber ein anderes Problem.

 

Ich bin gerade an der Migration einer NT4 Domäne nach Windows 2003.

 

Da in einer NT Umgebung alle Benutzerinformationen auf dem Exchange sind habe ich in den neuen Benutzerkonten unter 2003 nurnoch Anmeldenamen, Gruppenzuordnung, Profilpfad u.s.w.

 

Ist es möglich die Benutzerinformationen (Name, Vorname, Adresse, Tel u.s.w.) per Script hinzuzufügen? Oder könnte man diese sogar vom alten Exchange in die neue Umgebung migrieren?

 

Wäre dankbar für jede hilfe.

 

Gruss

 

slouch

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...