1

リモートマシンから引数を渡してアプリケーションを実行したいと思います。リモートマシンをローカルで実行することにより、リモートマシンで動作する次のものがあります。

foreach ($a in $args){
    &"c:\Program Files\ChristianSteven\CRD\crd.exe" "-s schedulename=Vc_$($a)"
}

以下を使用してリモートで実行する際に問題が発生しました。

foreach ($a in $args){     
    Invoke-Command -computername $serv -Credential $cred -ScriptBlock {param($b) &"c:\Program Files\ChristianSteven\CRD\crd.exe" $b} -ArgumentList "-s schedulename=Vc_$($a)"
}

私が読んだことから、これは変数スコープを使用することであり、解決策は、以下を使用してリモートマシンにスクリプトブロックを渡す前にスクリプトブロックを作成することです。

[scriptblock]::create(<command>)

多くの組み合わせを試しましたが、実行できません。

4

1 に答える 1

1

次のように実行できます。

$scriptBlock = {param($a) &"c:\Program Files\ChristianSteven\CRD\crd.exe" "-s schedulename=Vc_$($a)"}
foreach ($a in $args){     
    Invoke-Command -computername $serv -Credential $cred -ScriptBlock $scriptBlock -ArgumentList $a
}
于 2011-10-12T19:25:27.040 に答える