4

マシン A から PS リモート セッションを実行してマシン B にアクセスしようとしています。どちらも同じドメイン上にあり、Kerberos 認証が機能しており、PS リモート セッションを確立できます。

次のように、マシン B のマシン A からスクリプトにパラメーターを渡してスクリプトを実行しようとしています。

$build_script_dir = Resolve-Path .
$file_to_execute = "$build_script_dir\file_to_execute.ps1"

invoke-command -ComputerName MachineB -FilePath $file_to_execute -argumentlist $Arg1,$Arg2,$Arg3,$Arg4

これはスクリプトを呼び出していないようです。スクリプトをリモートマシンに持っていき、次のように実行しようとしました:

$remote_file = "c:\path-to-file\remote_file.ps1"

invoke-command -ComputerName MachineB -ScriptBlock {$remote_file} -argumentlist $Arg1,$Arg2,$Arg3,$Arg4

スクリプトの実行を停止している何が欠けていますか? スクリプトに渡す引数は約 10 個あり、スクリプトは IIS を操作します。

ポール

4

1 に答える 1

1

スクリプトがリモート マシンにのみ存在する場合:

Invoke-Command -ComputerName Server01 -scriptBlock { C:\scripts\Test.PS1 "Arguments here"}

-FilePathローカル マシンでスクリプトを検索します。

内でファイルパスを指定すると、-ScriptBlockリモート システムにあるスクリプトを呼び出すことができます。

また、ローカル マシンからリモート スクリプトに変数を渡す必要がある場合は、-Argumentlist を使用します。ただし、これに-ScriptBlockは param() が必要です。例えば、

Invoke-Command -ComputerName Server01 -scriptBlock { param($name, $age) C:\scripts\Test.PS1 -Name $name -Age $age} -ArgumentList $name,$age

上記のコマンドで、$name と $age はローカル変数です。

于 2012-06-28T09:01:46.463 に答える