-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-Key: 140598

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

Printed on: April 24, 2024 at 20:04 o'clock

Member: bastla
bastla Apr 14, 2010 at 09:20:01 (UTC)
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
Member: 5t8d1e
5t8d1e Apr 14, 2010 at 09:55:58 (UTC)
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
Member: -PzYcO-
-PzYcO- Apr 14, 2010 at 10:16:24 (UTC)
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.
Member: -PzYcO-
-PzYcO- Apr 14, 2010 at 10:34:54 (UTC)
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 {}
Member: 5t8d1e
5t8d1e Apr 14, 2010 at 10:40:43 (UTC)
Goto Top
Ahoi

und wo liegt das problem csvde -i -f deindateiname.csv in eine batch zuschreiben? face-wink
Member: -PzYcO-
-PzYcO- Apr 14, 2010 at 11:14:27 (UTC)
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!
Member: 5t8d1e
5t8d1e Apr 14, 2010 at 11:19:24 (UTC)
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
Member: bastla
bastla Apr 14, 2010 at 13:15:15 (UTC)
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
Member: diekoenigs
diekoenigs Apr 27, 2010 at 10:36:37 (UTC)
Goto Top
Hat es denn geklappt?
Habe auch interesse daran. face-smile

Grüße und Danke
Alex
Member: -PzYcO-
-PzYcO- Apr 28, 2010 at 15:45:01 (UTC)
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.
Member: -PzYcO-
-PzYcO- May 12, 2010 at 09:50:18 (UTC)
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  
Member: bastla
bastla May 14, 2010 at 19:32:35 (UTC)
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