-pzyco-
Goto Top

Anlegen mehrer Benutzer im AD durch Batch

Hallo liebe Leidensgenossen,

ich habe die Aufgabe bekommen, in einem ActiveDirectory (Windows Server 2008) durch eine Batch-Datei anlegen zu lassen.
Diese Benutzer sind einer entsprechenden OU des AD zuzuordnen.

Die Daten der User sind einer .csv-Datei zu entnehmen.
Diese ist wie folgt aufgebaut:

Vorname Nachname Abteilung Gruppe1 Gruppe2 Gruppe3 Gruppe4 Gruppe5

Mit welchem Befehl kann ich diese Datei am einfachten auslesen und die vorhandenen Daten verarbeiten?

Content-ID: 140598

Url: https://administrator.de/contentid/140598

Ausgedruckt am: 05.11.2024 um 19:11 Uhr

bastla
bastla 14.04.2010 um 11:20:01 Uhr
Goto Top
Hallo -PzYcO- und willkommen im Forum!
Mit welchem Befehl kann ich diese Datei am einfachten auslesen
for /f
und die vorhandenen Daten verarbeiten?
dsadd

Grüße
bastla
5t8d1e
5t8d1e 14.04.2010 um 11:55:58 Uhr
Goto Top
Hallo,

wenn die Daten schon im csv-format vorliegen ist csvde irgenwie sinnvoller als ne batch face-smile


grüße
torsten

PS.: natürlich sollten die Formate innerhalb der csv-datei eingehalten werden
und bevor der yusuf kommt hier der link yusuf erklärt csvde
-PzYcO-
-PzYcO- 14.04.2010 um 12:16:24 Uhr
Goto Top
Zitat von @5t8d1e:
wenn die Daten schon im csv-format vorliegen ist csvde irgenwie sinnvoller als ne batch face-smile

Leider ist die Vorgabe eine Batch-Datei zu basteln die diese Operation durchführt.
-PzYcO-
-PzYcO- 14.04.2010 um 12:34:54 Uhr
Goto Top
Ich habe jetzt folgenden Codeschnipsel gebastelt:

FOR /F "TOKENS=1 skip=1" %%G IN (users.csv) DO ECHO %%G  

Leider wird kein Wert ausgegeben, ich vermute also noch einen Fehler den ich allerdings nicht finde.
Außerdem stellt sich mir die Frage wie ich die erlangten Daten in den Befehl DSADD eingebaut bekomme?!

DSADD USER -fn {} -ln {} -desc {} -dept {}
5t8d1e
5t8d1e 14.04.2010 um 12:40:43 Uhr
Goto Top
Ahoi

und wo liegt das problem csvde -i -f deindateiname.csv in eine batch zuschreiben? face-wink
-PzYcO-
-PzYcO- 14.04.2010 um 13:14:27 Uhr
Goto Top
Zitat von @5t8d1e:
Ahoi

und wo liegt das problem csvde -i -f deindateiname.csv in eine batch zuschreiben? face-wink

Das hatte ich schon versucht. Habe gerade aber festgestellt, dass dieser Befehl auf meinen XP-System nicht vorhanden ist :rolleyes: und ich warten muss bis ich wieder an meine AD-Landschaft rankomme.
Vielleicht komme ich damit ja besser voran...
Dank dir 5t8d1e!
5t8d1e
5t8d1e 14.04.2010 um 13:19:24 Uhr
Goto Top
Hossa,

nee mußt nicht wirklich an die AD ran, csvde.exe von %systemroot%\system32\ eines servers kopieren.
und bis dahin den beitrag von yusuf lesen. ist auch sehr interessant wie man das per Powershell erledigen kann.


grüße
Torsten
bastla
bastla 14.04.2010 um 15:15:15 Uhr
Goto Top
Hallo-PzYcO-!

Die Schleife sollte (unter der Annahme, dass es tatsächlich eine CSV-Datei - also mit Comma als Trennzeichen - ist und die erste Zeile die Feldnamen enthält, etwa so aussehen:
for /f "skip=1 tokens=1-8 delims=," %%a in (users.csv) do echo Vorname: %%a, Nachname: %%b, Abteilung: %%c, Gruppe1: %%d, ...
Anstelle des "echo" könntest Du dann das "dsadd" platzieren ...

Grüße
bastla
diekoenigs
diekoenigs 27.04.2010 um 12:36:37 Uhr
Goto Top
Hat es denn geklappt?
Habe auch interesse daran. face-smile

Grüße und Danke
Alex
-PzYcO-
-PzYcO- 28.04.2010 um 17:45:01 Uhr
Goto Top
Zitat von @diekoenigs:
Hat es denn geklappt?
Habe auch interesse daran. face-smile

Grüße und Danke
Alex

Hatte bisher noch keine Zeit weiter daran zu basteln aber ich werd' Bescheid geben ob das klappt oder nicht.
-PzYcO-
-PzYcO- 12.05.2010 um 11:50:18 Uhr
Goto Top
Das Skript ist nun fertig und funktioniert einwandfrei.
Danke an alle die mir Tipps gegeben haben.

FOR-Schleife zum Einlesen:
FOR /f "skip=1 tokens=1-8 delims='' " %%a IN (%CSV%) DO CALL :sub %%a %%b %%c %%d %%e %%f %%g %%h  
GOTO ende

Nachdem die Variablen a-h eingelesen wurden werden sie an :sub übergeben und heißen dann %%1 - %%8
Ich habe sie dann - wegen der Übersichtlichkeit - in "richtig" Variablen eingelesen.

NET USER-Befehl um die Nutzer anzulegen:
NET USER %logon% F1rstLogin /add /fullname:"%vorname% %nachname%" /comment:"%abteilung%" /domain  
bastla
bastla 14.05.2010 um 21:32:35 Uhr
Goto Top
Hallo -PzYcO-!

Freut mich, dass es jetzt klappt. face-smile

Nachdem die Variablen a-h eingelesen wurden werden sie an :sub übergeben und heißen dann %%1 - %%8
Kleine Korrektur: Im Unterprogramm kommen die Variablen als %1 - %8 (also, wie die Parameter in jedem Batch, mit nur einem Prozentzeichen) an.

Grüße
bastla