Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

batch de commande DSADD dans un for /f

5 réponses
Avatar
Lyes
Bonjour,
J'ai tenté d'écrire un petit script en batch pour la création
automatique d'utilisateur mais j'arrive pas à le faire fonctionner.
Mon script lit un fichier txt qui contient un compte par ligne.

Pouvez-vous m'aider? J'ai mis ci dessous en 1 mon fichier de données et en
2 mon script.

mon fichier txt se présente comme ceci:
"CN",OU,samaccountname,Firstname,LASTNAME,"MESRINE "Display
NAME",password,"Description";


-------------------debut ------------------------------------------
@echo off

echo lecture de users.txt

for /F "skip=2 eol=; tokens=1,2,3,4,5,6,7 delims=, " %%i in (users.TXT) do (

dsadd user "cn=%%i,ou=%j,dc=mydom,dc=dom" -samid %%k
-upn %%k@mydom.dom -fn %%l -ln %%m -display %%i -pwd %%n -mustchpwd yes
-desc %%o -email %%l.%%m@mydom.dom -canchpwd yes -memberof
"CN=DnsAdmins,CN=Security Group,CN=Users,DC=mydom,DC=dom"

SET %%i=
SET %%j=
SET %%k=
SET %%l=
SET %%m=
SET %%n=
SET %%o=
)
--------------------fin--------------------------------

Merci de votre aide

Lyes.

5 réponses

Avatar
Thierry DEMAN [MVP]
Bonjour,

tu ne crois pas qu'un script type VBS serait beaucoup plus simple à
utiliser?

A noter que dans ton script, tu n'as pas besoin d'affecter les variables
%%j, %%k etc...
Ces valeurs doivent se remplir automatiquement.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
Bonjour,
J'ai tenté d'écrire un petit script en batch pour la création
automatique d'utilisateur mais j'arrive pas à le faire fonctionner.
Mon script lit un fichier txt qui contient un compte par ligne.

Pouvez-vous m'aider? J'ai mis ci dessous en 1 mon fichier de données et
en
2 mon script.

mon fichier txt se présente comme ceci:
"CN",OU,samaccountname,Firstname,LASTNAME,"MESRINE "Display
NAME",password,"Description";


-------------------debut ------------------------------------------
@echo off

echo lecture de users.txt

for /F "skip=2 eol=; tokens=1,2,3,4,5,6,7 delims=, " %%i in (users.TXT) do
(

dsadd user "cn=%%i,ou=%j,dc=mydom,dc=dom" -samid %%k
-upn %% -fn %%l -ln %%m -display %%i -pwd %%n -mustchpwd yes
-desc %%o -email %%l.%% -canchpwd yes -memberof
"CN=DnsAdmins,CN=Security Group,CN=Users,DC=mydom,DC=dom"

SET %%i > SET %%j > SET %%k > SET %%l > SET %%m > SET %%n > SET %%o > )
--------------------fin--------------------------------

Merci de votre aide

Lyes.



Avatar
Lyes
Bonsoir Thierry,

En fait j'ai fini par trouver ce qui n'allait pas dans mon script et il
fonctionne correctement maintenant.
Si j'ai choisi le batch c'est pour plusieurs raisons:
- en batch je m'en tire en 4 lignes alors qu' en vbs et avec mon cerveau
j'en aurai eu pour 4 mois.
- De plus j'ai des contraintes imposées par mon DSI qui souhaite que le
script soit facilement modifiable et qu'il fasse aussi la création de mailbox
exchange 2003***.

***Pour cette dernière tache j'ai trouvé l'utilitaire EXCHMBX de Joe Ware
qui me permet de faire ça avec seulement une ligne de plus. (même si pour
l'instant ça marche pas trop)

Comptes tenus de tout ce qui précède et surtout de mon niveau extrêment
faible en scripting, penses tu toujours que le vbs soit la meilleure
solution dans ce cas précis?

Dans ce cas j'ai essayé de faire un script par moi même afin de faire
marcher mes ménages et de ne pas vous solliciter sans avoir fournit un
minimum d'effort personnel.

Lyes

"Thierry DEMAN [MVP]" wrote:

Bonjour,

tu ne crois pas qu'un script type VBS serait beaucoup plus simple à
utiliser?

A noter que dans ton script, tu n'as pas besoin d'affecter les variables
%%j, %%k etc...
Ces valeurs doivent se remplir automatiquement.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
> Bonjour,
> J'ai tenté d'écrire un petit script en batch pour la création
> automatique d'utilisateur mais j'arrive pas à le faire fonctionner.
> Mon script lit un fichier txt qui contient un compte par ligne.
>
> Pouvez-vous m'aider? J'ai mis ci dessous en 1 mon fichier de données et
> en
> 2 mon script.
>
> mon fichier txt se présente comme ceci:
> "CN",OU,samaccountname,Firstname,LASTNAME,"MESRINE "Display
> NAME",password,"Description";
>
>
> -------------------debut ------------------------------------------
> @echo off
>
> echo lecture de users.txt
>
> for /F "skip=2 eol=; tokens=1,2,3,4,5,6,7 delims=, " %%i in (users.TXT) do
> (
>
> dsadd user "cn=%%i,ou=%j,dc=mydom,dc=dom" -samid %%k
> -upn %% -fn %%l -ln %%m -display %%i -pwd %%n -mustchpwd yes
> -desc %%o -email %%l.%% -canchpwd yes -memberof
> "CN=DnsAdmins,CN=Security Group,CN=Users,DC=mydom,DC=dom"
>
> SET %%i > > SET %%j > > SET %%k > > SET %%l > > SET %%m > > SET %%n > > SET %%o > > )
> --------------------fin--------------------------------
>
> Merci de votre aide
>
> Lyes.
>


.



Avatar
Thierry DEMAN [MVP]
Bonsoir,

on trouve à peu près toujours des scripts VBS qui font "presque" ce que l'on
souhaite.

Une ligne FOR /F n'est pas toujours ce qu'il y a de plus "lisible", mais du
moment que cela fonctionne...

De mémoire, le binaire d'administration Exchange (ADMIN.EXE) acceptait les
paramètres /I (et /E) pour prendre en compte la création de boîtes à partir
d'un fichier CSV.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
Bonsoir Thierry,

En fait j'ai fini par trouver ce qui n'allait pas dans mon script et il
fonctionne correctement maintenant.
Si j'ai choisi le batch c'est pour plusieurs raisons:
- en batch je m'en tire en 4 lignes alors qu' en vbs et avec mon
cerveau
j'en aurai eu pour 4 mois.
- De plus j'ai des contraintes imposées par mon DSI qui souhaite que le
script soit facilement modifiable et qu'il fasse aussi la création de
mailbox
exchange 2003***.

***Pour cette dernière tache j'ai trouvé l'utilitaire EXCHMBX de Joe Ware
qui me permet de faire ça avec seulement une ligne de plus. (même si pour
l'instant ça marche pas trop)

Comptes tenus de tout ce qui précède et surtout de mon niveau extrêment
faible en scripting, penses tu toujours que le vbs soit la meilleure
solution dans ce cas précis?

Dans ce cas j'ai essayé de faire un script par moi même afin de faire
marcher mes ménages et de ne pas vous solliciter sans avoir fournit un
minimum d'effort personnel.

Lyes

"Thierry DEMAN [MVP]" wrote:

Bonjour,

tu ne crois pas qu'un script type VBS serait beaucoup plus simple à
utiliser?

A noter que dans ton script, tu n'as pas besoin d'affecter les variables
%%j, %%k etc...
Ces valeurs doivent se remplir automatiquement.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
> Bonjour,
> J'ai tenté d'écrire un petit script en batch pour la création
> automatique d'utilisateur mais j'arrive pas à le faire fonctionner.
> Mon script lit un fichier txt qui contient un compte par ligne.
>
> Pouvez-vous m'aider? J'ai mis ci dessous en 1 mon fichier de données
> et
> en
> 2 mon script.
>
> mon fichier txt se présente comme ceci:
> "CN",OU,samaccountname,Firstname,LASTNAME,"MESRINE "Display
> NAME",password,"Description";
>
>
> -------------------debut ------------------------------------------
> @echo off
>
> echo lecture de users.txt
>
> for /F "skip=2 eol=; tokens=1,2,3,4,5,6,7 delims=, " %%i in (users.TXT)
> do
> (
>
> dsadd user "cn=%%i,ou=%j,dc=mydom,dc=dom" -samid %%k
> -upn %% -fn %%l -ln %%m -display %%i -pwd %%n -mustchpwd yes
> -desc %%o -email %%l.%% -canchpwd yes -memberof
> "CN=DnsAdmins,CN=Security Group,CN=Users,DC=mydom,DC=dom"
>
> SET %%i >> > SET %%j >> > SET %%k >> > SET %%l >> > SET %%m >> > SET %%n >> > SET %%o >> > )
> --------------------fin--------------------------------
>
> Merci de votre aide
>
> Lyes.
>


.





Avatar
Marc Lognoul [MVP]
Histoire d'être "à la mode", PowerShell simplifie grandement l'exploitation
des CSV. Couplé aux cmdlets Quest, cela donne ce gendre de one-liner:
Import-CSV c:users.csv | ForEach-Object { New-QADUser -Name
$_.Name -SamAccountName $_.Name -Department $_.Department -ParentContainer
mydoman.local/demo }

Voir
http://dmitrysotnikov.wordpress.com/2008/01/21/ad-user-provisioning-from-csv-got-easier/

--
Marc Lognoul [MCSE, MCTS, MVP]
Heureux celui qui a pu pénétrer les causes secrètes des choses
Happy is the one who could enter the secret causes of things
Blog EN: http://www.marc-antho-etc.net/blog/
Blog FR: http://www.marc-antho-etc.net/blogfr/


"Thierry DEMAN [MVP]" wrote in message
news:
Bonsoir,

on trouve à peu près toujours des scripts VBS qui font "presque" ce que
l'on souhaite.

Une ligne FOR /F n'est pas toujours ce qu'il y a de plus "lisible", mais
du moment que cela fonctionne...

De mémoire, le binaire d'administration Exchange (ADMIN.EXE) acceptait
les paramètres /I (et /E) pour prendre en compte la création de boîtes à
partir d'un fichier CSV.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
Bonsoir Thierry,

En fait j'ai fini par trouver ce qui n'allait pas dans mon script et il
fonctionne correctement maintenant.
Si j'ai choisi le batch c'est pour plusieurs raisons:
- en batch je m'en tire en 4 lignes alors qu' en vbs et avec mon
cerveau
j'en aurai eu pour 4 mois.
- De plus j'ai des contraintes imposées par mon DSI qui souhaite que le
script soit facilement modifiable et qu'il fasse aussi la création de
mailbox
exchange 2003***.

***Pour cette dernière tache j'ai trouvé l'utilitaire EXCHMBX de Joe Ware
qui me permet de faire ça avec seulement une ligne de plus. (même si pour
l'instant ça marche pas trop)

Comptes tenus de tout ce qui précède et surtout de mon niveau extrêment
faible en scripting, penses tu toujours que le vbs soit la meilleure
solution dans ce cas précis?

Dans ce cas j'ai essayé de faire un script par moi même afin de faire
marcher mes ménages et de ne pas vous solliciter sans avoir fournit un
minimum d'effort personnel.

Lyes

"Thierry DEMAN [MVP]" wrote:

Bonjour,

tu ne crois pas qu'un script type VBS serait beaucoup plus simple à
utiliser?

A noter que dans ton script, tu n'as pas besoin d'affecter les variables
%%j, %%k etc...
Ces valeurs doivent se remplir automatiquement.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
> Bonjour,
> J'ai tenté d'écrire un petit script en batch pour la création
> automatique d'utilisateur mais j'arrive pas à le faire fonctionner.
> Mon script lit un fichier txt qui contient un compte par ligne.
>
> Pouvez-vous m'aider? J'ai mis ci dessous en 1 mon fichier de données
> et
> en
> 2 mon script.
>
> mon fichier txt se présente comme ceci:
> "CN",OU,samaccountname,Firstname,LASTNAME,"MESRINE "Display
> NAME",password,"Description";
>
>
> -------------------debut ------------------------------------------
> @echo off
>
> echo lecture de users.txt
>
> for /F "skip=2 eol=; tokens=1,2,3,4,5,6,7 delims=, " %%i in
> (users.TXT) do
> (
>
> dsadd user "cn=%%i,ou=%j,dc=mydom,dc=dom" -samid %%k
> -upn %% -fn %%l -ln %%m -display %%i -pwd %%n -mustchpwd
> yes
> -desc %%o -email %%l.%% -canchpwd yes -memberof
> "CN=DnsAdmins,CN=Security Group,CN=Users,DC=mydom,DC=dom"
>
> SET %%i >>> > SET %%j >>> > SET %%k >>> > SET %%l >>> > SET %%m >>> > SET %%n >>> > SET %%o >>> > )
> --------------------fin--------------------------------
>
> Merci de votre aide
>
> Lyes.
>


.









Avatar
Thierry DEMAN [MVP]
Bonsoir,

oui, si c'était pour Exchange 2007 ou +, mais pas forcément pour Exchange
2003.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Marc Lognoul [MVP]" wrote in message
news:
Histoire d'être "à la mode", PowerShell simplifie grandement
l'exploitation des CSV. Couplé aux cmdlets Quest, cela donne ce gendre de
one-liner: Import-CSV c:users.csv | ForEach-Object { New-QADUser -Name
$_.Name -SamAccountName $_.Name -Department $_.Department -ParentContainer
mydoman.local/demo }

Voir
http://dmitrysotnikov.wordpress.com/2008/01/21/ad-user-provisioning-from-csv-got-easier/

--
Marc Lognoul [MCSE, MCTS, MVP]
Heureux celui qui a pu pénétrer les causes secrètes des choses
Happy is the one who could enter the secret causes of things
Blog EN: http://www.marc-antho-etc.net/blog/
Blog FR: http://www.marc-antho-etc.net/blogfr/


"Thierry DEMAN [MVP]" wrote in message
news:
Bonsoir,

on trouve à peu près toujours des scripts VBS qui font "presque" ce que
l'on souhaite.

Une ligne FOR /F n'est pas toujours ce qu'il y a de plus "lisible", mais
du moment que cela fonctionne...

De mémoire, le binaire d'administration Exchange (ADMIN.EXE) acceptait
les paramètres /I (et /E) pour prendre en compte la création de boîtes à
partir d'un fichier CSV.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
Bonsoir Thierry,

En fait j'ai fini par trouver ce qui n'allait pas dans mon script et il
fonctionne correctement maintenant.
Si j'ai choisi le batch c'est pour plusieurs raisons:
- en batch je m'en tire en 4 lignes alors qu' en vbs et avec mon
cerveau
j'en aurai eu pour 4 mois.
- De plus j'ai des contraintes imposées par mon DSI qui souhaite que le
script soit facilement modifiable et qu'il fasse aussi la création de
mailbox
exchange 2003***.

***Pour cette dernière tache j'ai trouvé l'utilitaire EXCHMBX de Joe
Ware
qui me permet de faire ça avec seulement une ligne de plus. (même si
pour
l'instant ça marche pas trop)

Comptes tenus de tout ce qui précède et surtout de mon niveau extrêment
faible en scripting, penses tu toujours que le vbs soit la meilleure
solution dans ce cas précis?

Dans ce cas j'ai essayé de faire un script par moi même afin de faire
marcher mes ménages et de ne pas vous solliciter sans avoir fournit un
minimum d'effort personnel.

Lyes

"Thierry DEMAN [MVP]" wrote:

Bonjour,

tu ne crois pas qu'un script type VBS serait beaucoup plus simple à
utiliser?

A noter que dans ton script, tu n'as pas besoin d'affecter les
variables
%%j, %%k etc...
Ces valeurs doivent se remplir automatiquement.

A+

--
Thierry DEMAN-BARCELÒ
http://www.faqexchange.info
Exchange MVP, MCITP Windows 2008, Exchange 2007, SQL 2008 (60 MCPs)
"Lyes" wrote in message
news:
> Bonjour,
> J'ai tenté d'écrire un petit script en batch pour la création
> automatique d'utilisateur mais j'arrive pas à le faire fonctionner.
> Mon script lit un fichier txt qui contient un compte par ligne.
>
> Pouvez-vous m'aider? J'ai mis ci dessous en 1 mon fichier de données
> et
> en
> 2 mon script.
>
> mon fichier txt se présente comme ceci:
> "CN",OU,samaccountname,Firstname,LASTNAME,"MESRINE "Display
> NAME",password,"Description";
>
>
> -------------------debut ------------------------------------------
> @echo off
>
> echo lecture de users.txt
>
> for /F "skip=2 eol=; tokens=1,2,3,4,5,6,7 delims=, " %%i in
> (users.TXT) do
> (
>
> dsadd user "cn=%%i,ou=%j,dc=mydom,dc=dom" -samid %%k
> -upn %% -fn %%l -ln %%m -display %%i -pwd %%n -mustchpwd
> yes
> -desc %%o -email %%l.%% -canchpwd yes -memberof
> "CN=DnsAdmins,CN=Security Group,CN=Users,DC=mydom,DC=dom"
>
> SET %%i >>>> > SET %%j >>>> > SET %%k >>>> > SET %%l >>>> > SET %%m >>>> > SET %%n >>>> > SET %%o >>>> > )
> --------------------fin--------------------------------
>
> Merci de votre aide
>
> Lyes.
>


.