Batch DSADD OU, Groups et Users

Bonjour à tous.

Je suis en train de créer un script batch pour mon boulot mais la je coince.
(petite précision, je suis en bts spécialiste système et réseau 1er année et je touche très peu en scripts =)

Je pars d'un txt qui ressemble à ça:

JOSEPH,Ouellet,P@ssw0rd,Direction,Membre,description,2,6,Direction,email
MARIE,Gauthier,P@ssw0rd,,Direction,Membre,description,2,6,Direction,email
PIERRE,Pépin,P@ssw0rd,Technicien,Membre,description,2,6,Production,email


Puis mon batch en lui même:

@echo off
for /F "tokens=1-10 delims=," %%a in (C:\nom1.txt) do (
dsadd ou ou=%%d,ou=%%e,DC=dom,DC=test" -scope g
dsadd group CN=%%d, OU=%%d, DC=dom, DC=test, -scope g
dsadd group CN=%%e, OU=%%d, DC=dom, DC=test, -scope g
dsadd user "CN=%%a.%%b, ou=Armor-meca, OU=%%d, OU=%%e, DC=dom, DC=test" -fn %%b -ln %%a -mi %a:~0.1%!%b:~0.1% -desc %%f -pwd %%c -mustchpwd yes -disabled no -memberof %%d!%%e -tel %%g r -mobile %%h -email %%j
)


Je voulais créer du seul coup, les OU, les Groupes et les Users.

Le problème c'est que... rien ne marche et la je sèche.

Si une âme charitable passait par là.

merci

Ps: si en plus cela peut aider quelqu'un par la suite c'est tout bon.
PPS: J'ai bien pensé au powershell mais ça sera pour un peu plus tard.

7 réponses

  1. Contributeur
    hello
    avec un echo devant les dsadd, le commandes ont elles l'air correctes ?
    1. Contributeur
      -mi %a:~0.1%!%b:~0.1%
      ceci n'a pas l'air correct, que faut-il faire ?
      1. Salut à toi et merci de prendre le temps de me répondre.

        Pour ce qui est de echo, non elles non pas l'air bonnes; ça me fait même planter le cmd...

        -mi %a:~0.1%!%b:~0.1%

        C'est vrai que pour moi non plus ça ne l'est pas...

        Cette ligne doit servir à inscrire les initiales en prenant la première lettre de la colonne a et la première de la colonne b (prénom,nom).
        Mais ça me semble bien bancal.
        1. Contributeur
          essayer ceci
          @echo off
          setlocal enableDelayedExpansion
          for /F "tokens=1-10 delims=," %%a in (C:\nom.txt) do (
          set n1=%%a
          set n2=%%b
          set n1=!n1:~0,1!
          set n2=!n2:~0,1!

          dsadd ou ou=%%d,ou=%%e,DC=dom,DC=test" -scope g
          dsadd group CN=%%d, OU=%%d, DC=dom, DC=test, -scope g
          dsadd group CN=%%e, OU=%%d, DC=dom, DC=test, -scope g
          dsadd user "CN=%%a.%%b, ou=Armor-meca, OU=%%d, OU=%%e, DC=dom, DC=test" -fn %%b -ln %%a -mi !n1!!n2! -desc %%f -pwd %%c -mustchpwd yes -disabled no -memberof %%d!%%e -tel %%g r -mobile %%h -email %%j
          )
          1. Rien :/

            Le cmd apparaît puis disparaît...

            Quand je glisse le bat dans le cmd il me ressort ça:

            C:\Users\Administrateur>for /F "tokens=1-10 delims=," %%a in (C:\Users\Administr
            ateur\Desktop\testliste.txt) do (
            %%a était inattendu.

            C:\Users\Administrateur>set n1=%%a

            C:\Users\Administrateur>set n2=%%b

            C:\Users\Administrateur>set n1=!n1:~0,1!

            C:\Users\Administrateur>set n2=!n2:~0,1!

            C:\Users\Administrateur>dsadd ou ou=%%d,ou=%%e,DC=dom,DC=test" -scope g
            dsadd échec:ou=%%d,ou=%%e,DC=dom,DC=test -scope g:Une référence a été renvoyée p
            ar le serveur.
            Entrez dsadd /? pour afficher l'aide.
            C:\Users\Administrateur>dsadd group CN=%%d, OU=%%d, DC=dom, DC=test, -scope g
            dsadd a échoué : « OU=%%d, » est un paramètre inconnu.
            Entrez dsadd /? pour afficher l'aide.
            C:\Users\Administrateur>dsadd group CN=%%e, OU=%%d, DC=dom, DC=test, -scope g
            dsadd a échoué : « OU=%%d, » est un paramètre inconnu.
            Entrez dsadd /? pour afficher l'aide.
            C:\Users\Administrateur>dsadd user "CN=%%a.%%b, ou=Armor-meca, OU=%%d, OU=%%e, D
            C=dom, DC=test" -fn %%b -ln %%a -mi !n1!!n2! -desc %%f -pwd %%c -mustchpwd yes -
            disabled no -memberof %%d!%%e -tel %%g r -mobile %%h -email %%j
            dsadd a échoué : « r » est un paramètre inconnu.
            Entrez dsadd /? pour afficher l'aide.
            C:\Users\Administrateur>)


            Petite question, pourquoi un -scope g pour les OU ?

            Merci

            Petite précision qui peut avoir sont importance je test sur un 2012 pas R2.
            1. Contributeur
              il vaut mieux ouvrir une fenetre DOS et exécuter le .bat dedans pour voir ce qu'il se passe
              1. yep
            2. Un peu de lecture: =)

              C:\Users\Administrateur>"C:\Users\Administrateur\Desktop\dsadd cmc - Copie.bat"
              dsadd échec:ou=department,ou=title,DC=dom,DC=test -scope g:Une référence a été r
              envoyée par le serveur.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « OU=department, » est un
              paramètre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « OU=department, » est un
              paramètre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : Aucune valeur n'est spécif
              iée pour « mobile ».
              Entrez dsadd /? pour afficher l'aide.dsadd échec:ou=Direction,ou=Directeur,DC=do
              m,DC=test -scope g:Une référence a été renvoyée par le serveur.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « OU=Direction, » est un p
              aramètre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « OU=Direction, » est un p
              aramètre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « BAPTISTE » est un paramè
              tre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd échec:ou=Direction,ou=Membre,DC=dom,D
              C=test -scope g:Une référence a été renvoyée par le serveur.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « OU=Direction, » est un p
              aramètre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « OU=Direction, » est un p
              aramètre inconnu.
              Entrez dsadd /? pour afficher l'aide.dsadd a échoué : « r » est un paramètre inc
              onnu.
              Entrez dsadd /? pour afficher l'aide.Appuyez sur une touche pour continuer...
              'Microsoft' n'est pas reconnu en tant que commande interne
              ou externe, un programme exécutable ou un fichier de commandes.
              2012 était inattendu.
              1. Contributeur
                je ne connais pas dsadd
                dans le script, mettre un echo devant dsadd
                récupérer la ligne et essayer de l'exécuter
              2. Ok je vais tester ça lundi. En parallèle je bosse sur un powershell qui pourrait faire la même chose...
                A voir lequel des deux fonctionnera en premier =)

                merci pour ton aide.

                Je te tiens au courant de mes avancées et posterai le resultats (si je le trouve) pour les autres.