IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WebDev Discussion :

Script paramétré powershell


Sujet :

WebDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut Script paramétré powershell
    Bonjour,

    Je suis en train de developper une application web qui permettrait l'automatisation d'ajout d'utilisateurs à l'AD a travers une interface web.
    J'ai pour cela décider d'utiliser un script Powershell pour l'ajout d'utilisateurs ( avec les cmdlets Quest ). Mon script marche bien avec des données en 'dur' mais je voudrais pouvoir le paramétrer pour qu'il utilise les données d'un formulaire précedemment rempli. J'ai pour l'instant utilisé la fonction ScriptExecute et je remplace les variables de mon script ( notées $nom par exemple ) par les données des zones de saisies, mais cela ne marche pas .

    Comment dois-je procéder ? Peut etre un script dans un autre language serait plus adapté ?

  2. #2
    Membre expérimenté

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2010
    Messages : 125
    Par défaut
    Bonjour,

    Je ne sais pas comment vous avez codé.
    Une piste : en code serveur charger le fichier script dans une chaine ou un buffer , remplacer vos valeurs par défaut par le svaleurs des zones de saisie, réenregistrer le fichier et l'exécuter....

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2013
    Messages : 2
    Par défaut
    Up et bonjour,

    J'ai bien avancé dans la résolution de ce problème,et j'ai procédé comme vous me l'avez conseillé du coup j'ai réussi a créer un script qui récupère les paramètres de la page en passant d'abord par un fichier texte, je l'ai ensuite modifié avec la fonction Remplace, puis je l'ai transformé en script powershell (.ps1 )
    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    sEmail est une chaîne = Gauche(SAI_pNomEmploye,1) +SAI_NomEmploye // On met les élément dont on aura besoin lors de la création d'utilisateur dans l'AD dans des variables (initiales,adresse mail).
    sInitiales est une chaîne = Gauche(SAI_pNomEmploye,1) + Gauche(SAI_NomEmploye ,1)
    sCritèreSamAccountName est une chaîne = "(samaccountname="+sInitiales+")"
    sCheminScript est une chaîne = "C:\MesSites\CCIManager\scriptCreationAD_"+SAI_NomEmploye+".ps1"
    HExécuteRequête(REQ_CheminAD,hRequêteDéfaut,SAI_typeContrat,SAI_Entite) //requête permettant de recuperer le dn de l'AD ou sera crée l'utilisateur selon son contrat et son entité
    HLitPremier(REQ_CheminAD)
    FichierVersPage()
    sCheminAd est une chaîne = REQ_CheminAD.dnAD
    SI (LDAPRecherche("ConnexionADCCI","dc=cci-57,dc=fr",sCritèreSamAccountName) = "") ALORS //vérification si il n'existe pas deja un compte avec les memes initiales pour le samaccountname
    sCriptAjoutAD est une chaîne = fChargeTexte("C:\MesSites\CCIManager\ScriptQad.txt") // On récupère le script de base non paramétré qu'on met dans une chaine
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"prenomNom","'"+SAI_pNomEmploye +" "+SAI_NomEmploye+"'") //puis on remplace les noms des variables par leur valeur précedemment remplies dans le formulaire
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"nom","'"+SAI_NomEmploye+"'")
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"fax","'"+SAI_FaxCollaborateur+"'")
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"Initiales","'"+sInitiales+"'") //Les guillemets sont la pour rajouter les cotes dans le script
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"email","'"+sEmail+"@cci-57.fr'")
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"dnAD","'"+sCheminAd+"'")
    sCriptAjoutAD = Remplace(sCriptAjoutAD,"telephone","'"+SAI_TelephoneFixe+"'")
    sCriptAjoutAD =Remplace(sCriptAjoutAD,"Fonction","'"+SAI_Fonction+"'")
    nIDFichier est un entier = fCrée(sCheminScript) // et on finit par créer un nouveau fichier, cette fois ci au format .ps1
    fEcritLigne(nIDFichier,sCriptAjoutAD)// auquel on rajoute la chaine transformée précedemment
    fFerme(nIDFichier)
     
    LanceAppliAssociée(sCheminScript) //puis on lance l'application avec Powershell

    Le script ainsi crée marche sans problème lorsqu'il est exécuté manuellement en double cliquant dessus, mais ne marche pas avec la fonction LanceAppliAssocié alors que Powershell se lance quand meme a l'execution du code mais se ferme quasiment instantanément. Quelqun saurait il pourquoi cela ne marche pas ?

    Désolé si le code est un peu lourd a avaler vu la mise en forme mais il m'a semblé nécessaire de laisser mes commentaires.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Par défaut
    Bonjour,

    je ne connais pas Powershell, mais je suppose qu'on peut le piloter via un batch dos avec ou sans arguments. Pouvez-vous essayer d'écrire dans un .bat (par programmation à la fin de la création du contenu de votre script) ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    powershell.exe -command "LeCheminDeVotreScript.ps1"
    Attention, il est peut-être nécessaire d'indiquer le chemin complet de l'exécutable à savoir quelque chose comme "C:\PowerShell\powershell.exe"

    Puis ensuite lancer ce batch par :
    SI PAS LanceAppli(CheminDuBatch.bat,exeIconise, exeBloquant) ALORS
    Erreur(ErreurInfo())
    FIN

Discussions similaires

  1. Newby : paramètres de script Perl
    Par amer2006 dans le forum Langage
    Réponses: 4
    Dernier message: 24/07/2006, 14h38
  2. Réponses: 3
    Dernier message: 10/05/2006, 18h40
  3. Paramètres script SQL
    Par greamm dans le forum Oracle
    Réponses: 2
    Dernier message: 27/04/2006, 15h53
  4. Passer un paramètre dans le script
    Par ipeteivince dans le forum Windows
    Réponses: 2
    Dernier message: 02/03/2006, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo