2017-04-04 1 views
0

Invoke-Commandにパラメータを渡す際に問題が発生しましたが、-Args-ArgumentListを使用してみました。それはあまり混乱だとしてInvoke-Commandにパラメータを渡す

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を使用して、あなたのパラメータを渡すためにあなたの機能を更新することができ、これはより良いコードです。

は、その後、あなたがArgumentListパラメータを使用してInvoke-Command$errcodeを渡す必要があります(私はそれは確かに役立つだろうとparameters and functionsにアップreadngお勧めします)、そしてその場所に$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

関連する問題