Resume-Job
中断されたジョブを再開します。
構文
Resume-Job
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Job] <Job[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
Resume-Job
コマンドレットは、Suspend-Job
コマンドレットや about_Suspend-Workflow アクティビティを使用して、中断されたワークフロー ジョブを再開します。 ワークフロー ジョブが再開されると、ジョブ エンジンは、状態、メタデータ、およびチェックポイントなどの保存されたリソースからの出力を再構築します。 ジョブは、状態やデータを失うことなく再起動されます。
ジョブの状態が Suspended から Running に変更されます。
Resume-Job
のパラメーターを使用して、名前、ID、インスタンス ID でジョブを選択するか、Get-Job
コマンドレットによって返されるジョブ オブジェクトなどのパイプを使用して、Resume-Job
します。 プロパティ フィルターを使用して再開するジョブを選択することもできます。
既定では、すべてのジョブがまだ再開されていない場合でも、 Resume-Job
はすぐに返されます。 指定したすべてのジョブが再開されるまでコマンド プロンプトを抑制するには、 Wait パラメーターを使用します。
Resume-Job
コマンドレットは、ワークフロー ジョブなどのカスタム ジョブの種類でのみ機能します。 Start-Job
コマンドレットを使用して開始されるジョブなど、標準のバックグラウンド ジョブでは機能しません。 サポートされていない種類のジョブを送信すると、 Resume-Job
は終了エラーを生成し、実行を停止します。
ワークフロー ジョブを識別するには、ジョブの PSJobTypeName プロパティで PSWorkflowJob の値を探します。 特定のカスタム ジョブの種類が Resume-Job
コマンドレットをサポートしているかどうかを確認するには、カスタム ジョブの種類のヘルプ トピックを参照してください。
カスタム ジョブの種類で Job コマンドレットを使用する前に、 Import-Module
コマンドレットを使用するか、モジュールのコマンドレットを取得または使用して、カスタム ジョブの種類をサポートするモジュールをインポートします。
このコマンドレットは、Windows PowerShell 3.0 で導入されました。
例
例 1: ID でジョブを再開する
この例のコマンドは、ジョブが中断状態のワークフロー ジョブであることを確認した後、このジョブを再開します。 最初のコマンドでは、 Get-Job
コマンドレットを使用してジョブを取得します。 出力には、ジョブが中断されたワークフロー ジョブであることが示されます。 2 番目のコマンドでは、Resume-Job
コマンドレットの Id パラメーターを使用して、Id 値 4 でジョブを再開します。
PS C:\> Get-Job EventJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 EventJob PSWorkflowJob Suspended True Server01 \\Script\Share\Event.ps1
PS C:\> Resume-Job -Id 4
例 2: 名前でジョブを再開する
このコマンドは、 Name パラメーターを使用して、ローカル コンピューターで複数のワークフロー ジョブを再開します。
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*
例 3: カスタム プロパティ値を使用する
このコマンドは、カスタム プロパティ値を使用して、再開するワークフロー ジョブを識別します。 Filter パラメーターを使用して、CustomID プロパティによってワークフロー ジョブを識別します。 また、 State パラメーターを使用して、ワークフロー ジョブの再開を試みる前に、ワークフロー ジョブが中断されていることを確認します。
PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended
例 4: リモート コンピューターで中断されているすべてのジョブを再開する
このコマンドは、Srv01 リモート コンピューター上のすべての中断されているジョブを再開します。
PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}
このコマンドでは、 Invoke-Command
コマンドレットを使用して、Srv01 コンピューターでコマンドを実行します。 リモート コマンドでは、Get-Job
コマンドレットの State パラメーターを使用して、コンピューター上のすべての中断されたジョブを取得します。 パイプライン演算子 (|
) は、中断されたジョブを Resume-Job
コマンドレットに送信して再開します。
例 5: ジョブの再開を待機する
このコマンドは、 Wait パラメーターを使用して、指定されたすべてのジョブが再開された後にのみ Resume-Job
を戻すように指示します。 Wait パラメーターは、スクリプトが続行する前にジョブが再開されることを前提とするスクリプトで特に便利です。
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait
例 6: それ自体を中断するワークフローを再開する
このコード サンプルは、ワークフロー内の Suspend-Workflow
アクティビティを示しています。
Server01 コンピューター上の Test-Suspend
ワークフロー。 ワークフローを実行すると、ワークフローは Get-Date
アクティビティを実行し、結果を $a
変数に格納します。 次に、 Suspend-Workflow
アクティビティを実行します。 応答として、チェックポイントを受け取り、ワークフローを中断し、ワークフロー ジョブ オブジェクトを返します。 Suspend-Workflow
は、ワークフローがジョブとして明示的に実行されていない場合でも、ワークフロー ジョブ オブジェクトを返します。
Resume-Job
は、Job8 で Test-Suspend
ワークフローを再開します。 Wait パラメーターを使用して、ジョブが再開されるまでコマンド プロンプトを保持します。
Receive-Job
コマンドレットは、Test-Suspend
ワークフローの結果を取得します。 ワークフローの最後のコマンドは、現在の日時とワークフローが中断される前に$a
変数に保存された日時の間の経過時間を表すTimeSpan オブジェクトを返します。
#SampleWorkflow
Workflow Test-Suspend
{
$a = Get-Date
Suspend-Workflow
(Get-Date)- $a
}
PS C:\> Test-Suspend -PSComputerName Server01
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Suspended True Server01 Test-Suspend
PS C:\> Resume-Job -Name "Job8" -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Running True Server01 Test-Suspend
PS C:\> Receive-Job -Name Job8
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 823
Ticks : 198230041
TotalDays : 0.000229432917824074
TotalHours : 0.00550639002777778
TotalMinutes : 0.330383401666667
TotalSeconds : 19.8230041
TotalMilliseconds : 19823.0041
PSComputerName : Server01
Resume-Job
コマンドレットを使用すると、Suspend-Workflow
アクティビティを使用して中断されたワークフロー ジョブを再開できます。 このアクティビティは、ワークフロー内からワークフローを中断します。 ワークフローでのみ有効です。
Suspend-Workflow
の詳細については、「about_Suspend-Workflow](../PSWorkflow/about/about_Suspend-Workflow.md)。
パラメーター
-Confirm
コマンドレットの実行前に確認を求めるメッセージが表示されます。
型: | SwitchParameter |
Aliases: | cf |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-Filter
条件のハッシュ テーブルを指定します。 このコマンドレットは、ハッシュ テーブル内のすべての条件を満たすジョブを再開します。 ジョブのプロパティをキー、ジョブのプロパティ値を値とするハッシュ テーブルを入力します。
型: | Hashtable |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Id
このコマンドレットが再開するジョブの ID の配列を指定します。
ID は、現在のセッションのジョブを一意に識別する整数です。 インスタンス ID よりも覚えて入力する方が簡単ですが、現在のセッションでのみ一意です。 1 つ以上の ID をコンマで区切って入力できます。 ジョブの ID を検索するには、 Get-Job
を実行します。
型: | Int32[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-InstanceId
このコマンドレットが再開するジョブのインスタンス ID の配列を指定します。 既定値はすべてのジョブです。
インスタンス ID は、コンピューター上のジョブを一意に識別する GUID です。 ジョブのインスタンス ID を見つけるには、 Get-Job
を実行します。
型: | Guid[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Job
再開するジョブを指定します。 ジョブが格納されている変数、またはジョブを取得するコマンドを入力します。 Resume-Job
コマンドレットにジョブをパイプすることもできます。
型: | Job[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
このコマンドレットが再開するジョブのフレンドリ名の配列を指定します。 1 つまたは複数のジョブ名を入力します。 ワイルドカード文字を使用できます。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-State
再開するジョブの状態を指定します。 このパラメーターの有効値は、次のとおりです。
- NotStarted
- 実行中
- 完了
- 失敗
- 停止済み
- ブロック済み
- Suspended
- [Disconnected](切断済み)
- Suspending
- Stopping
このコマンドレットは、 Suspended 状態のジョブのみを再開します。
ジョブの状態の詳細については、「 JobState 列挙を参照してください。
型: | JobState |
指定可能な値: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Wait
このコマンドレットは、すべてのジョブ結果が再起動されるまでコマンド プロンプトを抑制することを示します。 既定では、このコマンドレットはすぐに使用可能な結果を返します。
型: | SwitchParameter |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
-WhatIf
コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。
型: | SwitchParameter |
Aliases: | wi |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
このコマンドレットには、すべての種類のジョブをパイプ処理できます。 Resume-Job
サポートされていない型のジョブを取得すると、終了エラーが返されます。
出力
None, System.Management.Automation.Job
このコマンドレットは、 PassThru パラメーターを使用すると、再開しようとしているジョブを返します。 それ以外の場合、このコマンドレットによる出力はありません。
メモ
Windows PowerShell には、 Resume-Job
の次のエイリアスが含まれています。
rujb
Resume-Job
は、中断されているジョブのみを再開できます。 ジョブを別の状態で送信した場合、Resume-Job
はジョブに対して再開操作を実行しますが、ジョブを再開できなかったことを通知する警告を生成します。 警告を抑制するには、値が SilentlyContinue の WarningAction 共通パラメーターを使用します。ジョブが再開をサポートする型ではない場合 (ワークフロー ジョブ (PSWorkflowJob) など)、
Resume-Job
は終了エラーを返します。中断されているジョブを保存するメカニズムと保存先の場所は、ジョブの種類によって異なる可能性があります。 たとえば、中断されているワークフロー ジョブは、既定でフラット ファイル ストアに保存されますが、SQL データベースに保存することもできます。
ジョブを再開すると、ジョブの状態が Suspended から Running に変わります。 実行中のジョブ (このコマンドレットによって再開されたものも含む) を見つけるには、
Get-Job
コマンドレットの State パラメーターを使用して、Running 状態のジョブを取得します。一部のジョブの種類には、Windows PowerShell によるジョブの中断が許可されないオプションまたはプロパティを持つもあります。 ジョブの中断が失敗した場合は、ジョブのオプションとプロパティで中断が許可されていることを確認します。
関連リンク
PowerShell