【PowerShell】Invole-Command –FilePath パラメタの魔法
Invoke-Command を使用するとリモートコンピューター上でコマンドレットを実行することができます。このとき、コマンドレット単体ではなく、スクリプトファイル(.ps1)を使用することができます。
Invoke-Command で .ps1 ファイルを使用する方法は2つあります。
Invoke-Command -ComputerName SV01 -FilePath .\hogehoge.ps1
Invoke-Command -ComputerName SV02 {.\hogehoge.ps1}
前者と後者の違い、わかりますか?
前者の場合は、スクリプトファイルのパスはローカルコンピューターです。後者の場合は、リモートコンピューター内のパスになります。
リモートコンピューターにコマンドレットが存在することさえ確認できていれば、スクリプトファイルをいちいち送信しなくてもよいというのは非常に便利なことです。
(参考)【PowerShell】Hyper-V 系コマンドレットを手元の Windows 7 から実行するには ~ Import-PSSession
ちなみに、指定した ps1 ファイルに引数を指定したい場合にはどうしたらよいでしょう?
以下のように、-ArgumentList パラメタを使用して指定します。
Invoke-Command -ComputerName SV01 -FilePath .\hogehoge.ps1 -ArgumentList “Arg1",“Arg2",“Arg3"
PowerShell...知れば知るほど奥が深いです。