Piszę ogólny skrypt powershell, aby wykonać wdrożenia na komputerach zdalnych. I uderzył jeden problem, nie mogę przekręcić, a ten problem jest z parametrami z cudzysłowy w Scriptblock przekazywanych przez ArgumentListParametry z podwójnymi cudzysłowami nie są poprawnie przesyłane do Scriptblock przez ArgumentList
mam coś takiego:
$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
}
Dodałem cudzysłowów w $ deploymentPackages. I wciąż dostaję moje polecenia wykonywane zdalnie tak (co oczywiście nie):
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
natomiast właściwa ścieżka wykonanie powinno być:
D:\some path\Command.exe -package:"package - three - external" -action:doit
bez cudzysłowów wokół pakietu - One - zewnętrzne, które bałagan do góry co to jest
Jak pokonać ten problem, ponieważ przetestowałem wiele rozwiązań i nie działało.
Dzięki za pomoc z góry!
To rozwiązanie działało idealnie. Dzięki! – Midi