Jump to content

Mehrere Benutzer aus Excel-Tabelle anlegen


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

Empfohlene Beiträge

Hallo an Alle.

 

Ich müsste etwa 900 Benutzer auf eine nagelneue 2003 Server anlegen.

 

Ich Naivling habe mir soetwas wie eine Benutzer.csv Datei aus der Excel-Datei erstellen und mit dem Befehl dsadd user alle auf einmal anzulegen gedacht. Schöne Theorie nur keine Praxis.

 

Kann mir da jemand gute bis sehr gute Ratschläge erteilen, denn ehrlich gesagt ich trau mich nicht am frisch installierten Server rumzuprobieren.

 

Leider kenne ich nicht den genauen Aufbau der Excel-Tabell, wie es aussehen soll und auch nicht den genauen Syntax des Befehls dsadd user mit Benutzer.csv.

 

Für jede Hilfe wäre ich sehr dankbar.

Link zu diesem Kommentar

Hallo

 

besitzt Dein Server eine zweite physikalische Festplatte? Ich geh mal davon aus, dann würde ich Dir zuvor eine ASR - Sicherung empfehlen. (--> mit einer zweiten FP geht's am bequemsten)

 

Guckst Du hier...

http://www.microsoft.com/resources/documentation/WindowsServ/2003/datacenter/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/datacenter/proddocs/en-us/asr_overview.asp

 

das mit der csv-Datei ist eigentlich eine gute Idee den genau dazu gibt es ja das Tool csvde.exe

 

Guckst Du hier ...

http://www.kaczenski.de/it-service/faq.htm#csvde

oder hier ...

http://www.jsiinc.com/SUBI/tip4000/rh4073.htm

 

An einem neuen Server herumzuprobieren ist immer mit Unbehagen verbunden aber mit der richtigen Sicherungsstrategie und getesteten Backup!!! auch kein so großes Problem. Besser ist natürlich eine Testumgebung, in der Du Deine Skripte zunächst testen kannst. (VMWare oder VirtualPC)

 

 

gruß freak04

Link zu diesem Kommentar

Erstmal Danke für die Antworten!

 

Die Lösung mit dem kostenlosen eUser-Software für die Schulen ist genau das war ich im Moment brauche.

 

Bis eure Antworten kamen, haben wir schnell doch noch einen Testserver zusammengeschustert und dann gleich diesen eUser darauf mit voller Erwartung ausprobiert. Leider klappt nicht bei 2003.

 

Es holt die Benutzerdaten aus der Excel-Tabelle aber übernimmt sie nich weiter in die Liste aus der es die Benutzer anlegen sollte. D. h. es legt keinen einzigen Benutzer an, weil es eine leere Liste hat.?! Fehlermeldungen gibts auch nichts.

 

Danach hatte ich leider keine Zeit mehr mich damit weiter zu beschäftigen. Ich hatte am Wochenende eine andere mörderische Installation. Sobald ich etwas näheres weis, melde ich mich gleich wieder.

 

Tschüß!

Magdalena

Link zu diesem Kommentar

sonst probier es einfach mal so

 

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

 

' SKRIPT UM BENUTZER UEBER EINE TEXTDATEI ANZULEGEN AUF DEM TERMINALSERVER WIN 2003

'

' AUFBAU DER TEXTDATEI USER.TXT = user1,Vorname 1,Nachname 1,pwd1

' user2,Vorname 2,Nachname 2,pwd2

'

'

'

'

'

'

 

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=XXXXXXXX,DC=COM")

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 & "@XXXXXXXXXX.COM"

b.Put "profilePath", "\\TS-BR-WE-01\daten\profile\" & Benutzer

b.Put "homeDirectory", "\\TS-BR-WE-01\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

 

 

 

 

 

viel spass

Link zu diesem Kommentar

Danke für den Vorschlag!

 

Noch 3 ****e Fragen :rolleyes: :

 

Muss man bei diesem Textdatei die Benutzer nicht mit Komma oder ; trennen?

 

Gilt diese Anwendung auch für normale 2003 server ohne Terminal-Server? (habe 900 Benutzer (Schüler) aber nur 60 Rechner).

 

Den Home-Verzeichnis anlegen sehe ich aber wird auch Mail-Adresse mit erzeugt?

 

Entschuldige, ich bin in sachen Skripten leider blutige Anfängerin.

 

Vielen Dank für deine Geduld.

 

Tschüß

Magdalena

Link zu diesem Kommentar

etwas netter is das glaub ich so, aber erst zu deinen fragen:

die textdatei is mit komme getrennt, geht eigentlich auf allen systemen.

was haelst du den davon willst es doch mit einer csv datei machen.

 

 

 

 

 

'#################################################################################################

'Auslesen von Usern aus einer CSV Datei

'#################################################################################################

'Initialisierung

'Verbindungen herstellen

'#################################################################################################

Const Standort = "DEINE DOMAINE"

 

strADS = "DC=DEINE DOMAINE,DC=loc"

Set objADS = GetObject("LDAP://" & strADS)

Set objfs = CreateObject("Scripting.FileSystemObject")

Set objEingabeGruppen = objfs.OpenTextFile("c:\gruppen.txt",1,True)

 

Set objAusgabe = objfs.CreateTextFile("C:\user.log",True)

 

'On Error Resume next

 

'#################################################################################################

'Anlegen eines Containers für einen Standort

'20#################################################################################################

 

set objOu = objADS.Create("OrganizationalUnit","OU=" & Standort)

objOu.SetInfo

 

Set objSite = GetObject("LDAP://OU=" & Standort &"," & strADS)

 

'#################################################################################################

'Anlegen eines Containers für Gruppen

'#################################################################################################

 

set objGroup = objSite.Create("OrganizationalUnit","OU=Gruppen")

objGroup.SetInfo

 

 

'#################################################################################################

'Anlegen der Gruppen

'#################################################################################################

 

set objGruppenCont = GetObject("LDAP://OU=Gruppen,OU=" & Standort & "," & strADS)

'40

Do While objEingabeGruppen.AtEndOfStream <> true

strNextGroup = objEingabeGruppen.Readline

set objNewGroup = objGruppenCont.Create("Group","cn=" & strNextGroup)

objNewGroup.sAMAccountName = strNextGroup

objNewGroup.SetInfo

StrGroupCreate = objAusgabe.WriteLine ("Die Gruppe " & strnextGroup & " wurde erfolgreich angelegt")

Loop

 

objEingabeGruppen.Close

 

'#################################################################################################

'Abfragen in welchen Container die User angelegt werden sollen

'#################################################################################################

'Öffnen der Exceldatei

 

set ObjExcel = Wscript.CreateObject("Excel.Application")

set ObjAdsPath = GetObject("LDAP://OU=" & Standort & "," & strADS)

 

call ObjExcel.Workbooks.Open("C:\USERIMPORT.XLS",0)

'60

ObjExcel.Sheets(1).Activate

 

'Anlegen der OUs in denen der user angelegt werden soll

row = 2

strBlankLine = objAusgabe.WriteLine("")

 

Do while ObjExcel.Range("A:A").Cells(row).Text <> ""

 

strOU = ObjExcel.Range("F:F").Cells(row).Text

set objnewOu = objAdsPath.Create("OrganizationalUnit","OU=" & strOu)

objNewOu.SetInfo

strOUCreate = objAusgabe.WriteLine ("Die OU " & strOu & " wurde erfolgreich angelegt")

row = row + 1

loop

 

'#################################################################################################

'Anlegen der User

'#################################################################################################

 

'80

row = 2

strBlankLine = objAusgabe.WriteLine("")

 

 

Do while objExcel.Range("A:A").Cells(row).Text <> ""

 

strDN = ObjExcel.Range("A:A").Cells(row).Text

strSN = ObjExcel.Range("B:B").Cells(row).Text

strGivenName = ObjExcel.Range("C:C").Cells(row).Text

strSamAccountName = ObjExcel.Range("E:E").Cells(row).Text

strGroup = ObjExcel.Range("D:D").Cells(row).Text

strOU = ObjExcel.Range("F:F").Cells(row).Text

strPass = ObjExcel.Range("G:G").Cells(row).Text

set objADSPath = GetObject("LDAP://OU=" & strOU & ",OU=" & Standort & "," & strADS)

set objNewUser = objADSPath.Create("User","CN=" & strDN)

 

objNewUser.Put "sAMAccountName",strsamaccountname

objNewUser.Put "sn", strsn

objNewUser.Put "givenName", strgivenname

'100

objNewUser.Put "UserAccountControl", "514"

objNewUser.SetInfo

objNewUser.SetPassword strPass

objNewUser.Put "UserAccountControl", "512"

objNewUser.SetInfo

 

set objADSGroup = GetObject("LDAP://CN=" & strGroup & ",OU=Gruppen,OU=" & Standort & "," & strADS)

objADSGroup.Add objnewuser.adspath

objADSGroup.SetInfo

 

strUserCreate = objAusgabe.WriteLine ("Der User " & strgivenName & " " & strsn &" wurde erfolgreich angelegt")

strUserinGroup = objAusgabe.WriteLine (" Der User " & strgivenName & " wurde erfolgreich der Gruppe " & strGroup & " hinzugefügt")

 

row= row + 1

 

loop

 

if row>0 then

Erfolg = "Fertig: " & row & " User angelegt (Massenuser"

 

else

Erfolg = "Keine User angelegt."

end if

 

die Gruppen.txt sieht so aus (halt im editor)

 

GG_EDV

GG_KS

GG_VR

GG_EO

 

 

 

 

 

und die datei userimport.xls sieht so aus

 

 

Distinguished Name Nachname Vorname Gruppe Anmeldename Container Passwort

Hans Meiser Meiser Hans GG_EDV hm EDV Sommer2003

Marc Fischer Fischer Marc GG_VR mf VR Sommer2003

Axel Seher Seeher Axel GG_KS as KS Sommer2003

Karina Günther Günther Karina GG_EO kg EO Sommer2003

 

 

 

 

viel spass damit

brwic

Link zu diesem Kommentar

so zu dem ersten skript fehlten dir die Home-verzeichnisse kommen hier:::

 

 

'Anlegen der Verzeichnisse und Berechtigungen

 

md \\server\daten\home\%1

echo J | cacls \\TS-BR-WE-01\daten\home\%1 /C /E /G Administratoren:F

echo J | cacls \\TS-BR-WE-01\daten\home\%1 /C /E /G domaene\%1:F

echo J | cacls \\TS-BR-WE-01\daten\home\%1 /C /E /R Jeder

md \\TS-BR-WE-01\daten\profile\%1

echo J | cacls \\TS-BR-WE-01\daten\profile\%1 /C /E /G Administratoren:F

echo J | cacls \\TS-BR-WE-01\daten\profile\%1 /C /E /G domaene\%1:F

echo J | cacls \\TS-BR-WE-01\daten\profile\%1 /C /E /R Jeder

---

 

 

 

 

mit den email-adressen habt ihr einen exchange-server der legt die beim benutzeranmelder mit an..

 

viel spass brwic

Link zu diesem Kommentar
  • 4 Wochen später...

Aha, hier hat scheinbar einer richtig Ahnung vom Scripting!

 

Hab da nämlich ein ähnliches Problem:

 

Hab ne Excel-Liste mit allen Usern der Firma. Es sind in einer Spalte die Usernamen nach der Konvention vorname.nachname vorhanden. In einer weiteren Spalte steht ein Kürzel für die OU-Zugehörigkeit der user.

 

Jetzt suche ich nach einer eleganten Lösung um automatisch Verzeichnisse zu erstellen, die genauso heissen sollen wie die user, also vorname.nachname.

 

Das muss doch irgendwie gehen! Also bitte helft mir, dann hab ich in den nächsten Tagen früher Feierabend!!

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

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...