Benutzer per Script in Active Directory anlegen Drucken E-Mail

Benutzer per Script in Active Directory anlegen

Die Nachfolgenden Beispieldateien beinhalten die gesammelten Informationen aus verschiedenen Internet-Quellen von verschiedenen Autoren. Bitte bei Fragen den folgenden Link beachten:

http://www.mcseboard.de/showthread.php?t=13316&page=1&pp=10

In diesem Link werden alle Eventualitäten und Probleme mit den nachfolgnden Dateien (1 bis 3) ausführlich diskutiert. Im Zuge der Diskussionen hat ein Mitglied von http://www.mcseboard.de namens jensw_2000 ein kleines Freeware-Tool entwickelt das 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 Benutzer bequem 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änen-Benutzern) Mitglied werden soll. Für jeden User kann festgelegt werden ob das Konto in CN=USERS oder einer beliebigen OU angelegt werden soll. Gruppen und OUs werden erstellt, falls nicht vorhanden. Das Tool ist zudem Plugin-fähig. Weitere Informationen zu diesem Freeware-Tool gibt es hier:

http://www.innovasoft.de/produkte/adsscripter/adsscripter.php

An dieser Stelle vielen Dank und großes Lob an alle beteiligten, besonders thorgood und jenwsw_2000. Die Nennung dieser beiden Personen soll allerdings keine Abwertung der Arbeit anderer, hier nicht genannter Personen sein! Allen, die sich an dem Desing dieser Lösung konstruktiv beteiligt haben, gebührt entsprechender Respekt!

Um Fehler beim Kopieren wie irrtümliche Zeilenumbrüche und / oder fehlende Zeichen zu vermeinden, empiehlt es sich, dass Script aus dem Download-Bereich herunterzuladen. Dazu ist allerdings eine unkomplizierte und kostenfreie Registrierung nötig, für die nur eine gültige Mailadresse hinterlegt werden muss. Die Daten werden unter strenger Beachtung der einschlägigen Datenschutzgesetze verwahrt und unter keinen Umständen (auch nicht auszugsweise) an dritte weitergegeben.



1. Teil user.txt
---
user1,Vorname 1,Nachname 1,pwd1,Stadt1,PLZ1,Postfach1,Bundesland1,StrasseZeile11,StrasseZeile21
user2,Vorname 2,Nachname 2,pwd2,Stadt2,PLZ2,Postfach2,Bundesland2,StrasseZeile12,StrasseZeile22
---
 

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(3)
Stadt = Feld(4)
PLZ = Feld(5)
Postfach = Feld(6)
Bundesland = Feld(7)
StrasseZeile1 = Feld(8)
StrasseZeile2 = Feld(9)

Call BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort,Stadt,PLZ,Postfach,Bundesland,StrasseZeile1,StrasseZeile2)
Loop
f.Close
Wscript.Quit(0)

Sub BenuntzerAnlegen (Benutzer,Vorname,Nachname,Passwort,Stadt,PLZ,Postfach,Bundesland,StrasseZeile1,StrasseZeile2)
Dim ouo, b

' Der Benutzer wird in der OU "Benutzer" angelegt, die wiederum eine Unter-OU von "muensterland-it" ist

Set ouo = GetObject("LDAP://OU=Benutzer,OU=muensterland-it,DC=muensterland-it,DC=de")

Set b = ouo.Create("user", "CN=" & Nachname & ", " & Vorname )
Dim WshShell, ret
Set WshShell = WScript.CreateObject("WScript.Shell")

b.Put "sAMAccountName", Benutzer
b.Put "displayName", Nachname & ", " & Vorname
b.Put "givenName", Vorname
b.Put "sn", Nachname
b.Put "userAccountControl", 66082
b.Put "userPrincipalName", Benutzer & "@domaene.de"
b.Put "profilePath", "\\Server\daten\profile\" & Benutzer
b.Put "homeDirectory", "\\Server\daten\user\" & Benutzer
b.Put "homeDrive", "U:"

b.Put "scriptPath", "login.bat"

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", StrasseZeile1 & vbCrlf & StrasseZeile2 & vbCrlf

b.TerminalServicesHomeDirectory = "\\Server\daten\user\" & Benutzer
b.TerminalServicesHomeDrive = "U:"
b.TerminalServicesProfilePath = "\\Server\daten\profile\Terminal\" & Benutzer

b.Put "pwdLastSet", 0

b.Setinfo

' Dass Kennwort in der Datei USER.TXT muss zwingend den Kennwortrichtlinien entsprechen

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