リモート処理でのバックグラウンドジョブ
バックグラウンドジョブはリモート処理でも実行することができます。
リモート処理については前回の記事を参照ください。
対話型セッションでのバックグラウンドジョブ
対話型セッションでバックグラウンドジョブを実行するには、Enter-PSSessionコマンドレットを使用します。Enter-PSSessionコマンドレットについては前回の記事を参照ください。
まずはEnter-PSSessionコマンドレットでリモートコンピューターに接続します。リスト8は最初にHIRO-WIN7というリモートコンピューターに接続します。
次に、今回の記事で紹介したStart-Jobコマンドレットでバックグラウンドジョブを実行します(図4)。
Enter-PSSession HIRO-WIN7 $Jobresult = Start-Job -ScriptBlock {Get-ChildItem C:\Work}
永続的なセッションでのバックグラウンドジョブ
永続的なセッションでバックグラウンドジョブを実行するには、Invoke-Commandコマンドレットを使用します。Invoke-Commandコマンドレットについては前回の記事を参照ください。
まずは、New-PSSessionコマンドレットでリモートコンピューターへのセッションを作成します。
次に、作成したセッションを使用してバックグラウンドジョブを実行するには、Invoke-Commandコマンドレットで-AsJobパラメータを使用します。
リスト9はHIRO-WIN7というリモートコンピューターに永続的なセッションを作成後、Invoke-Commandコマンドレットでバックグラウンドジョブを実行します(図5)。
$sess = New-PSSession -ComputerName HIRO-WIN7 Invoke-Command -Session $sess -ScriptBlock {Get-ChildItem C:\Work} -AsJob
後は今回の記事で紹介したGet-JobやReceive-Jobコマンドレットを使用して、ジョブ結果を取得します。