<p>Lorsque PowerShell rencontre une commande commençant par une chaîne, il évalue simplement la chaîne, c’est-à-dire qu’il l’affiche généralement à l’écran, par exemple :</p>
<pre><code class="lang-auto">PS> "Hello World"
Hello World
</code></pre>
<p>Si vous souhaitez que PowerShell interprète la chaîne comme un nom de commande, utilisez l’opérateur d’appel (&) comme ceci :</p>
<pre><code class="lang-auto">PS> & 'C:\Program Files\IIS\Microsoft Web Deploy\msdeploy.exe'
</code></pre>
<p>Après cela, vous n’aurez probablement besoin de mettre entre guillemets que les paires paramètre/argument contenant des espaces et/ou des guillemets. Lorsque vous invoquez un fichier EXE de cette manière avec des arguments de ligne de commande complexes, il est généralement très utile de disposer d’un outil qui vous montrera comment PowerShell envoie les arguments au fichier EXE. Les <a href="http://pscx.codeplex.com">PowerShell Community Extensions</a> disposent d’un tel outil. Il s’appelle echoargs. Vous remplacez simplement le fichier EXE par echoargs - en laissant tous les arguments en place, et il vous montrera comment le fichier EXE recevra les arguments, par exemple :</p>
<pre><code class="lang-auto">PS> echoargs -verb:sync -source:dbfullsql="Data Source=mysource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;" -dest:dbfullsql="Data Source=.\mydestsource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;",computername=10.10.10.10,username=administrator,password=adminpass
Arg 0 is -verb:sync
Arg 1 is -source:dbfullsql=Data
Arg 2 is <Source=mysource;Integrated>
Arg 3 is <Security=false;User>
Arg 4 is <ID=sa;Pwd=sapass!;Database=mydb;>
Arg 5 is -dest:dbfullsql=Data
Arg 6 is <Source=.\mydestsource;Integrated>
Arg 7 is <Security=false;User>
Arg 8 is <ID=sa;Pwd=sapass!;Database=mydb; computername=10.10.10.10 username=administrator password=adminpass>
</code></pre>
<p>En utilisant echoargs, vous pouvez expérimenter jusqu’à obtenir le bon résultat, par exemple :</p>
<pre><code class="lang-auto">PS> echoargs -verb:sync "-source:dbfullsql=Data Source=mysource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;"
Arg 0 is -verb:sync
Arg 1 is <-source:dbfullsql=Data Source=mysource;Integrated Security=false;User ID=sa;Pwd=sapass!;Database=mydb;>
</code></pre>
<p>Il s’avère que j’essayais</p>
<p><em>(Réponse tronquée)</em></p>