Batch DSADD OU, Groups et Users

BaZHik Messages postés 38 Statut Membre -  
BaZHik Messages postés 38 Statut Membre -
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. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    avec un echo devant les dsadd, le commandes ont elles l'air correctes ?
    0
  2. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    -mi %a:~0.1%!%b:~0.1%
    ceci n'a pas l'air correct, que faut-il faire ?
    0
  3. BaZHik Messages postés 38 Statut Membre
     
    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.
    0
  4. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    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
    )
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. BaZHik Messages postés 38 Statut Membre
     
    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.
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    il vaut mieux ouvrir une fenetre DOS et exécuter le .bat dedans pour voir ce qu'il se passe
    0
    1. BaZHik Messages postés 38 Statut Membre
       
      yep
      0
  8. BaZHik Messages postés 38 Statut Membre
     
    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.
    0
    1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
       
      je ne connais pas dsadd
      dans le script, mettre un echo devant dsadd
      récupérer la ligne et essayer de l'exécuter
      0
    2. BaZHik Messages postés 38 Statut Membre
       
      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.
      0