1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

VBScript zum Import von Usern ins AD

Discussion in 'Programmieren' started by yannick_89, Sep 14, 2009.

Thread Status:
Not open for further replies.
  1. yannick_89

    yannick_89 Kbyte

    Hallo Leute,

    im Internet gibt es ja haufenweise Scriptvorlagen zum Importieren von Benutzern ins Active Directory.
    Ich bin nicht der Scriptmeister und habe mir mal ein Script rausgesucht. Hintergrund ist, das ich ca. 50 Benutzer anlegen muss, um das nicht in der MMC zu machen ist es sinnvoll ein Script zu nutzen.
    Das Ausgangsscript besteht aus drei Dateien.

    1. 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. Import.vbs (das eigentliche 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

    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

    b.SetPassword Passwort
    b.AccountDisabled = False


    b.SetInfo

    WScript.Sleep(1000)
    ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)
    End Sub


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

    ______________

    Mein Problem ist nun, das ich nicht weiß welche Daten ich genau eintragen muss.

    Ich möchte das ganze in einer VMWare Testumgebung ausprobieren.
    Mein Domänencontroller heißt:
    mdc01
    und die Domäne ist
    mh.local

    Es gibt nur die Standardeinträge im AD (z.B. Users).

    Ich habe das VBScript angepasst, aber irgendwas ist falsch. Wie gesagt habe bisher noch nicht gescriptet. Wäre nett wenn mir jemand den Code mal richtig programmiert.

    Mein Code sieht wie folgt 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)
    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


    Set ouo = GetObject("LDAP://CN=User,DC=mh,DC=local")

    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 & "@mdc01.mh.local"
    b.Put "profilePath", "\\mdc01.mh.local\daten\profile\" & Benutzer
    b.Put "homeDirectory", "\\mdc01.mh.local\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 = "\\mdc01.mh.local\daten\user\" & Benutzer
    b.TerminalServicesHomeDrive = "U:"
    b.TerminalServicesProfilePath = "\\mdc01.mh.local\daten\profile\Terminal\" & Benutzer

    b.Put "pwdLastSet", 0

    b.Setinfo


    b.SetPassword Passwort
    b.AccountDisabled = False


    b.SetInfo

    WScript.Sleep(1000)
    ret = WshShell.Run ("verz.cmd " & Benutzer,0,1)
    End Sub

    _______

    Danke für Hilfe!
     
Thread Status:
Not open for further replies.

Share This Page