PowerShellコマンドレット虎の巻

Receive-Job

Receive-Jobは、ジョブの結果を取得するコマンドです。

エイリアスrcjb

解説

バックグラウンドジョブの結果を取得するために使用します。
ジョブオブジェクト、ジョブID、ジョブ名から結果を取得できます。

構文

(構文)
Receive-Job [-Job] <Job[]> [[-Location] <string[]>] [<CommonParameters>] Receive-Job [-Job] <Job[]> [[-ComputerName] <string[]>] [<CommonParameters>] Receive-Job [-Job] <Job[]> [[-Session] <PSSession[]>] [<CommonParameters>] Receive-Job [-Name] <string[]> [<CommonParameters>] Receive-Job [-InstanceId] <guid[]> [<CommonParameters>] Receive-Job [-Id] <int[]> [<CommonParameters>]
【主要パラメータ】
パラメータ説明
-Job オブジェクト結果を取得するジョブオブジェクトを指定する
-ComputerName 名前結果を取得するジョブが実行されたコンピュータ名を指定する
-Location 場所結果を取得するジョブが実行された場所を指定する
※コンピュータ名やセッション名など
-Session セッション結果を取得するジョブが実行されたPowerShellセッションを指定する
-Keepジョブの結果をメモリに保持する
※このパラメータを使用しないと結果は取得後に削除される
(例)Receive-Job -Id 5 -Keep
-NoRecurse子ジョブの結果を取得しない
-Force強制的に結果を取得する
-Waitジョブが完了するまで待機してから結果を取得する
(例)Receive-Job -Id 5 -Wait
-AutoRemoveJobジョブの結果を取得した後に自動的にジョブを削除する
(例)Receive-Job -Id 5 -AutoRemoveJob
-WriteEventsジョブのストリームイベントを書き込む
(例)Receive-Job -Id 5 -WriteEvents
-WriteJobInResults結果にジョブオブジェクトを含める
-Name ジョブ名ジョブ名を指定して結果を取得する
※ワイルドカードも使用可
(例)Receive-Job -Name "Job*"
-InstanceId GUID結果を取得するジョブのインスタンスID(GUID)を指定する
-Id ジョブIDジョブIDを指定して結果を取得する
(例)Receive-Job -Id 3

共通的なパラメータは「共通パラメータ」をご覧ください。

サンプル

開始したジョブの結果を受け取る

$job = Start-Job -ScriptBlock { Get-Process } Start-Sleep -Seconds 1 Receive-Job -Job $job

複数のジョブの結果を受け取る

$job1 = Start-Job -ScriptBlock { Get-Process } $job2 = Start-Job -ScriptBlock { Get-Service } Start-Sleep -Seconds 1 Receive-Job -Job $job1, $job2

タイムアウトを設定してジョブの結果を受け取る

$job = Start-Job -ScriptBlock { Start-Sleep -Seconds 30 } Receive-Job -Job $job -Timeout 10

コマンドのヘルプを表示する

Get-Help Receive-Job

備考

  • ジョブがまだ実行中の場合は結果を取得することはできないため、事前に状態を取得したのちに結果を取得するようにしてください。
  • Receive-Jobを実行するとデフォルトではジョブの結果が削除されるため、結果を削除したくない場合は -Keepパラメータを使用して結果を保持してください。

関連項目