0
我無法通過Invoke-Command
遠程運行以下PowerShell腳本。PowerShell腳本與Invoke-Command不起作用
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
調用它時沒有。
有人可以幫助我嗎?
請勿使用'env:'限定符作爲參數:'{param($ FileLocation,$ file)&「$ FileLocation \ $ file」}' –
我們需要使用env,因爲我們不知道放置在遠程機器上的腳本的位置。我們正在使用環境變量來讀取腳本的位置。 –
是的,在客戶端(你仍然應該把'$ env:FileLocation'傳遞給'ArgumentList'),但是在遠程scriptblock中你可以自己定義參數變量的名字。 –