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

Scripts/Batch Discussion :

Transmettre en VBA un tableau de String à un script Powershell [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre à l'essai
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Points : 24
    Points
    24
    Par défaut Transmettre en VBA un tableau de String à un script Powershell
    Bonjour,

    J'ai écris un script Powershell qui prends en entrée les type de paramètres un String et un Tableau de String.

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    param( 	
     
         [string[]]$Param1,
         [string]$Param2,
    )

    Ce script fonctionne parfaitement depuis longtemps.

    Mais pour faciliter la vie des utilisateurs , j'ai créé avec Visual Studio Community une interface graphique (en VBA) et c'est là que je commence à nager la brasse couler.
    J'ai un petit souci pour transmettre "param1" qui est un tableau de String.

    Comment transmettre au script Powershell un Paramètre reconnu comme un tableau de string à partir de l'interface graphique en VBA ????

    La commande que je lance en VBA est :

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    Commande = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy unrestricted  -file " & TextBox4.Text & " -Param2" & ComboBox1.Text & "  -Param1" & TextBox1.Text



    Par avance merci de votre aide....

  2. #2
    Membre actif
    Avatar de troxsa
    Inscrit en
    Novembre 2004
    Messages
    386
    Détails du profil
    Informations personnelles :
    Âge : 50

    Informations forums :
    Inscription : Novembre 2004
    Messages : 386
    Points : 264
    Points
    264
    Par défaut
    Bonjour,

    Mais il me semble que c'est pas possible de lui passer un objet "Tableau" en arguments, il lui faut le contenu du tableau et non la forme objet
    mais je peux me tromper

  3. #3
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Formate ton param1 comme ceci

    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    @("aa", "bb", "cc")

  4. #4
    Membre à l'essai
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Bonjour,

    Je passe bien un paramètre sous cette forme @("aa", "bb", "cc") en VBA, mais elle n'est pas correctement interprété coté PowerShell, elle est interprétée comme un String.

    Interprétation en ligne de commande :
    Nom : 2019-12-19_13h55_00.jpg
Affichages : 253
Taille : 78,6 Ko

    Interprétation via l'interface VBA :
    Nom : 2019-12-19_13h57_27.jpg
Affichages : 150
Taille : 24,2 Ko
    Nom : 2019-12-19_13h58_32.jpg
Affichages : 142
Taille : 69,1 Ko

  5. #5
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Après avoir réalisé un test, tu as raison.

    Ça fonctionne comme ceci chez moi :
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -ExecutionPolicy Unrestricted -Command "C:\dossieravecun` espace\test.ps1 -Param1 @('toto', 'tata')"

  6. #6
    Membre à l'essai
    Homme Profil pro
    Gestionnaire de parc micro-informatique
    Inscrit en
    Septembre 2017
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Gestionnaire de parc micro-informatique
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2017
    Messages : 24
    Points : 24
    Points
    24
    Par défaut
    Merci d'avoir corrigé mon erreur

    Effectivement dans ma commande vba, quand je remplace "-file" par "-command" cela fonctionne très bien. Encore une fois merci


    Code VBA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ' Mauvaise Commande  : 
    'Commande = "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy unrestricted  -file " & TextBox4.Text & "  -vm " & TextBox1.Text & " -finalisation " & Finalisation
     
    ' Bonne Commande  : 
    Commande = "C : \Windows\System32\WindowsPowerShell\v1.0\powershell.exe - ExecutionPolicy unrestricted  -Command " & TextBox4.Text & " -vm " & TextBox1.Text & " -finalisation" & Finalisation
     
     
    Shell(Commande)

    Nom : 2019-12-23_09h33_13.jpg
Affichages : 127
Taille : 24,0 Ko


    Nom : 2019-12-23_09h33_52.jpg
Affichages : 141
Taille : 84,0 Ko

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 02/01/2014, 15h29
  2. VBA / C++ - Passage de tableau de strings
    Par paparasta dans le forum C++
    Réponses: 1
    Dernier message: 26/11/2010, 15h26
  3. SAFEARRAY tableau de strings, DLL et VBA
    Par beafrancky dans le forum Débuter
    Réponses: 4
    Dernier message: 20/07/2009, 07h42
  4. [Collections] Conversion de Vector en tableau de String
    Par java_math dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 06/06/2004, 12h55
  5. [Collections] Tableau de String
    Par gexti dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 02/06/2004, 15h42

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