我无法使用Invoke-Command
远程运行以下PowerShell脚本。
Invoke-Command
:
Invoke-Command -Session $session -Command {
Param($env:FileLocation, $file)
& "$env:FileLocation\$file"
} -ArgumentList ($env:FileLocation, $file) > ./windowsResult.txt
远程脚本:
$Process = Start-Process "$env:DATABASE_HOME\bin\psql.exe" -ArgumentList "-p "5433" -U "postgres" -d "TESTDB" -f $env:LOC_SCRIPT\DBTestScript.2.sql" -Wait -PassThru
if ($Process.ExitCode -eq 0) {
Write-Host "Success!!!!"
} else {
Write-Host "Error while executing DB Scripts"
}
执行此远程脚本时,它可以正常运行,数据库也会成功更新。
但是当用Invoke-Command
调用它时,它不会。
有人可以帮我这个吗?
答案 0 :(得分:0)
为什么不将脚本注入块中并远程执行?
$block={
$Process = Start-Process "$env:DATABASE_HOME\bin\psql.exe" -ArgumentList "-p "5433" -U "postgres" -d "TESTDB" -f $env:LOC_SCRIPT\DBTestScript.2.sql" -Wait -PassThru
if ($Process.ExitCode -eq 0) {
Write-Host "Success!!!!"
} else {
Write-Host "Error while executing DB Scripts"
}
}
Invoke-Command -Session $session -ScriptBlock $block
如果您需要块接受参数,请按照语法操作,但不要使用$env:
前缀
我希望我能正确理解你需要达到的目标。