2017-04-04 45 views
0

我在傳遞參數問題Invoke-Command,我已經使用-Args-ArgumentList無濟於事嘗試。參數傳遞到調用命令

function One { 
$errcode = $args 
$username = "Ron" 
$password = ConvertTo-SecureString -String "Baxter" -AsPlainText -Force 
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $password 
$cred 
$Result = Invoke-Command -ComputerName MyPc -ScriptBlock { & cmd.exe /c "C:\Scripts\test.bat" Param1 $errcode ; $lastexitcode} -Credential $cred 
echo $result 
} 


One 10 
+0

你得到的錯誤? –

+0

不是這樣,所有返回的是'ECHO已打開'。 – RonBurgundy

回答

1

您可以更新功能在參數傳遞爲$errcode,而不是使用$args,這是更好的代碼,因爲它是減少混亂。 (我建議readng了上parameters and functions,因爲它一定會幫助)

然後,你需要使用ArgumentList參數傳遞到$errcodeInvoke-Command,並在其位置使用$args[0]

function One ($errcode) { 
    $username = "Ron" 
    $password = ConvertTo-SecureString -String "Baxter" -AsPlainText -Force 
    $cred = New-Object -typename System.Management.Automation.PSCredential -argumentlist $username, $password 

    $Result = Invoke-Command -ComputerName MyPc -ScriptBlock { & cmd.exe /c "C:\Scripts\test.bat" Param1 $args[0] ; $lastexitcode} -Credential $cred -ArgumentList $errcode 
    echo $Result 
} 
One 10 
+0

哦,我的!這位先生是令人愉快的。謝謝。絕對享受。 – RonBurgundy