Parameter, die mit doppelten Anführungszeichen werden nicht richtig übergeben Scriptblock von ArgumentList

Ich Schreibe generisches powershell-Skript ausführen Bereitstellungen auf remote-Rechnern. Ich traf ein problem ich kann nicht überlaufen, und dieses problem ist mit den Parametern, die mit doppelten Anführungszeichen in Scriptblock übergeben ArgumentList

Ich habe so etwas wie dieses:

$remoteAddress = "some-pc"
$deploymentCommand = "D:\some path\Command.exe"
$deploymentPackages = @(`"“package - one - external"`", `"package - two - external"`", `"“package - three - internal"`")

foreach ($deploymentPackage in $deploymentPackages)
{
invoke-command -ComputerName $remoteAddress -ScriptBlock { param ($deployCmd, $deployPackage) &  $deployCmd -package:$deployPackage -action:doit } -ArgumentList   $deploymentCommand,$deploymentPackage
}

Habe ich Hinzugefügt, doppelte Anführungszeichen in $deploymentPackages. Und trotzdem bin ich immer meinen Befehl ausgeführt, Fernwartung, wie dies (was natürlich fehlschlägt):

D:\some path\Command.exe -package:package - one - external -action:doit
D:\some path\Command.exe -package:package - two - external -action:doit
D:\some path\Command.exe -package:package - three - external -action:doit

während ordnungsgemäße Ausführung der Pfad sollte sein:

D:\some path\Command.exe -package:"package - three - external" -action:doit

ohne Anführungszeichen-Paket - eine - externe, die versauen everythig

Wie überlaufen dieses problem, weil ich getestet habe, Reihe von Lösungen und nicht von Ihnen arbeitete.

Danke für die Hilfe im Voraus!

InformationsquelleAutor Midi | 2013-02-20

Schreibe einen Kommentar