Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 6199 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 ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Windows Server
gelöst Lösche Profile Files von Usern unter Windows Server 2008 (4)

Frage von guenti8 zum Thema Windows Server ...

SAN, NAS, DAS
Synology: LDAP Server mit lokalen Usern Synchronisieren (3)

Frage von D46505Pl zum Thema SAN, NAS, DAS ...

Entwicklung
gelöst VBS Script startet nicht auf Server 2012 (6)

Frage von shooan zum Thema Entwicklung ...

Hyper-V
Windows Server 2012 R2 NIC Teaming mit Lancom Switch

Frage von onkel87 zum Thema Hyper-V ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (32)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...