Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Script zur Autogenerierung von Usern im ADS unter W2K3 Server

Frage Microsoft Windows Server

Mitglied: Rakeem2001

Rakeem2001 (Level 1) - Jetzt verbinden

25.08.2005, aktualisiert 13.03.2007, 6259 Aufrufe, 8 Kommentare

Servus,

ich falle gleich mal mit der Tür ins Haus, ich soll für einen W2K3 Server Testuser erstellen, allerdings nicht 10 oder 20, sondern 1000. Darum wollte ich fragen, ob jemand irgendeine Idee zu diesem Thema hat, habe sowas leider noch nie vorher gemacht und wüßte eben gerne, ob man das ganze per Script lösen kann...
Ich brauche diese Menge an User um ein Tool zu testen, welches das ADS ausliest und gegebenfalls Daten wiederherstellt.

Hoffe mir kann jemand weiterhelfen.

THX im vorraus

Gruß René
Mitglied: HedgeHog
25.08.2005 um 14:25 Uhr
Google sagt:

1. Teil user.txt
---
user1,Vorname 1,Nachname 1,pwd1
user2,Vorname 2,Nachname 2,pwd2
---

2. Teil - VB Script
---
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(2)
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=user,DC=domaene,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 & "@domaene.de"
b.Put "profilePath", "\\server\daten\profile\" & Benutzer
b.Put "homeDirectory", "\\server\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

3. Teil - Verz.cmd
---
md \\server\daten\home\%1
echo J | cacls \\server\daten\home\%1 /C /E /G Administratoren:F
echo J | cacls \\server\daten\home\%1 /C /E /G domaene\%1:F
echo J | cacls \\server\daten\home\%1 /C /E /R Jeder
md \\server\daten\profile\%1
echo J | cacls \\server\daten\profile\%1 /C /E /G Administratoren:F
echo J | cacls \\server\daten\profile\%1 /C /E /G domaene\%1:F
echo J | cacls \\server\daten\profile\%1 /C /E /R Jeder
Bitte warten ..
Mitglied: Rakeem2001
26.08.2005 um 08:11 Uhr
Vielen Dank, ich hab zwar gestern auch gegoogelt aber nichts gefunden... Kenne mich einfach nicht genug in dieser Materie aus.

Nochmals Danke, werde ich gleich mal umsetzen!!!

THX
Bitte warten ..
Mitglied: Rakeem2001
29.08.2005 um 09:29 Uhr
So, jetzt war ich ja am Freitag so optimistisch, und nun habe ich doch noch ein ganz tolles Problem:
Beim ausführen bekomme ich eine System Exception und zwar an der Stelle, wo er die ouo LDAP Connection aufbauen will.
Liegt das nun daran das mir eine Komponente fehlt, oder habe ich was falsch gemacht... Ich habe allerdings jetzt alles in ein Form gepackt... Wahrscheinlich ist es meine Schuld.

Hier mein Quellcode:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim fso, f, Zeile, Feld
fso = CreateObject("Scripting.FileSystemObject")
f = fso.OpenTextFile("user.txt", 1, 0)

Dim Benutzer, Vorname, Nachname, Passwort
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()
End Sub

Sub BenuntzerAnlegen(ByVal Benutzer, ByVal Vorname, ByVal Nachname, ByVal Passwort)
Dim ouo, b
ouo = GetObject("LDAP://OU=user,DC=domaene,DC=de")
b = ouo.Create("user", "CN=" & Vorname & " " & Nachname)
Dim WshShell, ret
WshShell = CreateObject("WScript.Shell")
b.Put("sAMAccountName", Benutzer)
b.Put("userPrincipalName", Benutzer & "@domaene.de")
b.Put("profilePath", "\\server\daten\profile\" & Benutzer)
b.Put("homeDirectory", "\\server\daten\home\" & Benutzer)
b.Put("homeDrive", "U:")
b.SetInfo()
b.SetPassword(Passwort)
b.AccountDisabled = False
b.SetInfo()
WshShell.Sleep(1000)
ret = WshShell.Run("verz.cmd " & Benutzer, 0, 1)
End Sub
Bitte warten ..
Mitglied: Biber
29.08.2005 um 10:12 Uhr
Moin Rakeem2001,

aber angepasst hast Du das Script an den Stellen OU, DC, DC schon?
also in z.B. diesen Zeilen
ouo = GetObject("LDAP://OU=user,DC=domaene,DC=de")
Da muss statt "domaene" natürlich "René's Firmendomäne") rein.

Nur dass wir wissen, was es für Fehler sein könnten.
Wenn es das nicht ist - wie ist denn die Fehlernummer / der Fehlertext genau?

Frank / der Biber aus Bremen
Bitte warten ..
Mitglied: Rakeem2001
29.08.2005 um 15:04 Uhr
Der genau Fehlertext ist:

System.Exception: ActiveX-Komponente kann nicht erstellt werden.
at Microsoft.VisualBasic.Interaction.GetObject(String PathName, String Class)
at WindowsApplication1.Form1.BenuntzerAnlegen(Object Benutzer, Object Vorname, Object Nachname, Object Passwort) in D:\Data\Visual Studio Projects\WindowsApplication1\Form1.vb:line 96
at WindowsApplication1.Form1.Button1_Click(Object sender, EventArgs e) in D:\Data\Visual Studio Projects\WindowsApplication1\Form1.vb:line 89
at System.Windows.Forms.Control.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnClick(EventArgs e)
at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.ButtonBase.WndProc(Message& m)
at System.Windows.Forms.Button.WndProc(Message& m)
at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

Er hat also irgendwelche Probleme mit dem Active X... Ich habe leider selber keine Ahnung wieso das passiert.

Hoffe es kann mir jetzt noch jemand weiterhelfen!
Bitte warten ..
Mitglied: Rakeem2001
02.09.2005 um 08:34 Uhr
So, ich bedanke mich nochmals für die Hilfe, habe jetzt aber umdisponiert und habe nun mit dem Tool "ldifde", was standardmässig bei Windows Servern dabei ist (habe ich aber nicht gewußt, genauso wie der FISI... sind eben beide noch Azubis... und nun habe ich meine 1000 Testuser.

Falls es jemanden interessiert wie das geht, und da dieses Thema recht häufig gelesen wurde, hier mal ne kurze schnelle Erklärung:

Für jeden User braucht man folgenden Block an Daten:

dn: CN=toni1 meier1,OU=ZielOU,DC=Domänenname,DC=de
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: toni1 meier1
sn: meier1
givenName: toni1
distinguishedName: CN=toni1 meier1,OU=ZielOU,DC=Domänenname,DC=de
displayName: toni1 meier1
name: toni1 meier1
userPrincipalName: t1.meier1@Comtest.de
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=Domänenname,DC=de

Anschließend muss man sich nur noch die passende Menge in einer Datei (z.B. user.ldif) zusammenfassen, dabei jeden User per Leerzeile trennen und dann muss diese Datei, der Einfachheit halber, in den Dokumenten und EInstellungen des Administrators ablegen...

Dann noch schnell "ldifde -i -f user.ldif -s Servername" und dann werden die User schnell eingetragen, allerdings muss man sie dann noch im AD aktivieren.

So fertig.

THX René
Bitte warten ..
Mitglied: manni45
13.03.2007 um 15:59 Uhr
Hi
ich versuche auch dieses Script zum laufen zu bringen.
Bekomme aber am anfang schon diese meldung.
Windows Script Host
Skript: C:\Dokumente und Einstellungen\Administrator\Eigene Dateien\user_anlegen_script\user.vbs
Zeile: 1
Zeichen: 40
Fehler: ')' erwartet
Code: 800A03EE
Quelle: Kompilierungsfehler in Microsoft VBScript

OK
Kenne mich mit VB nicht aus.

Kann jemmand Helfen

Danke
Manni
Bitte warten ..
Mitglied: Captnemo
07.02.2012 um 11:23 Uhr
Ich hol dieses Thread noch mal aus der Versenkung, weil ich mich gerade mit dieser Thematik auseinander setzen muß.

Das Script ist klasse und funktioniert wunderbar.

Usereinrichtung klappt, und anlegen im Exchange auch. Ich erstelle die Home- und Profilordner, gebe sie entsprechend frei und vergebe die Rechte. Klappt alles wunderbar.

Was mir noch fehlt ist eingentlich in dem Script nur, wie ich ein Anmeldescript mit im User eintragen kann. Hab so gar keine Idee wie das gehen könnte. Und wenn man das bei Google sucht, bekommt man tausend Seiten wie man VBS im Anmeldescript nutzt. Das interessiert mich aber nicht. Ich will ja das Anmeldescript im AD per VBS setzen.
Kann mir irgendwer eine Tipp geben wie es geht oder wo sowas steht? Bzw. wo finde ich eine Referenz für die in obigen Script angelegten Objecte b / ouo, wo die möglichen eigenschaften aufgelistet sind, die man setzen kann.

Danke für alles
Dieter
Bitte warten ..
Ähnliche Inhalte
Windows Server
gelöst Login Script (kix) bei Windows Server 2012 R2 (6)

Frage von TechNoob17 zum Thema Windows Server ...

Windows Server
gelöst GPO soll zwangsabmeldung von Usern ermöglichen (7)

Frage von LordNicon79 zum Thema Windows Server ...

Entwicklung
PowerShell Script : Neustart mehrere Server hintereinander (4)

Frage von ollip2016 zum Thema Entwicklung ...

Batch & Shell
gelöst Script in Powershell (27)

Frage von Everest zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(14)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

RedHat, CentOS, Fedora

Fedora 27 ist verfügbar

Information von Frank zum Thema RedHat, CentOS, Fedora ...

Heiß diskutierte Inhalte
Server
Bilder aus dem Web mit CSV runterladen (30)

Frage von Yannosch zum Thema Server ...

Server-Hardware
Bestehendes Raid erweitern um 4 gleiche Platten! (Verständnis Fragen) (12)

Frage von Hendrik2586 zum Thema Server-Hardware ...

Windows Update
WSUS 4 (Server 2012 R2) - Windows 10 Updates nicht möglich (12)

Frage von c0d3.r3d zum Thema Windows Update ...