リモートマシンへの展開を実行するための一般的なpowershellスクリプトを作成しています。私はオーバーランすることができない一つの問題を直撃しているが、この問題は、私はこのような何か持ってArgumentListは二重引用符で囲まれたパラメータは、ArgumentListによってScriptblockに正しく渡されません。
によって渡されたスクリプトブロック内の二重引用符を持つパラメータである:私は$ deploymentPackagesに二重引用符を追加した
$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
}
を。適切な実行パスがあるべき
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
ながら::そして、まだ私は私のコマンドが(もちろん失敗した)このようremotly実行さそうだ
D:\some path\Command.exe -package:"package - three - external" -action:doit
パッケージの周りに引用符なし - 1 - これは混乱外部up everythig
私はいくつかのソリューションをテストし、そのうちのどれもうまくいきませんでしたので、この問題をどのように克服するか。
ありがとうございました!
を表示しますが。ありがとう! – Midi