Resume-Job
中断されたジョブを再起動します。
構文
SessionIdParameterSet (既定)
Resume-Job
[-Id] <Int32[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Resume-Job
[-Job] <Job[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Resume-Job
[-Name] <String[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Resume-Job
[-InstanceId] <Guid[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Resume-Job
[-State] <JobState>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Resume-Job
[-Filter] <Hashtable>
[-Wait]
[-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 でジョブを再開する
The first command uses the **Get-Job** cmdlet to get the job. The output shows that the job is a suspended workflow job.
PS C:\> Get-Job EventJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 EventJob PSWorkflowJob Suspended True Server01 \\Script\Share\Event.ps1
The second command uses the *Id* parameter of the **Resume-Job** cmdlet to resume the job with an *Id* value of 4.
PS C:\> Resume-Job -Id 4
この例のコマンドは、ジョブが中断されたワークフロー ジョブであることを確認し、ジョブを再開します。
例 2: 名前でジョブを再開する
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*
このコマンドは、Name パラメーターを使用して、ローカル コンピューターで複数のワークフロー ジョブを再開します。
例 3: カスタム プロパティ値を使用する
PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended
このコマンドは、カスタム プロパティの値を使用して、再開するワークフロー ジョブを識別します。 Filter パラメーターを使用して、CustomID プロパティによってワークフロー ジョブを識別します。 また、State パラメーターを使用して、ワークフロー ジョブの再開を試みる前に、ワークフロー ジョブが中断されていることを確認します。
例 4: リモート コンピューターで中断されているすべてのジョブを再開する
PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}
このコマンドは、Srv01 リモート コンピューターで中断されているすべてのジョブを再開します。
このコマンドでは、Invoke-Command コマンドレットを使用して Srv01 コンピューターでコマンドを実行します。 リモート コマンドは、Get-Job コマンドレットの State パラメーターを使用して、コンピューター上のすべての中断されたジョブを取得します。 パイプライン演算子 (|) は、中断されたジョブを Resume-Job コマンドレットに送信し、ジョブを再開します。
例 5: ジョブの再開を待機する
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait
このコマンドは、 Wait パラメーターを使用して、指定したすべてのジョブが再開された後にのみ Resume-Job に戻るように指示します。 Wait パラメーターは、スクリプトが続行する前にジョブが再開されることを前提とするスクリプトで特に便利です。
例 6: それ自体を中断するワークフローを再開する
This code sample shows the **Suspend-Workflow** activity in a workflow.
#SampleWorkflow
Workflow Test-Suspend
{
$a = Get-Date
Suspend-Workflow
(Get-Date)- $a
}
The following command runs the Test-Suspend workflow on the Server01 computer.When you run the workflow, the workflow runs the Get-Date activity and stores the result in the $a variable. Then it runs the Suspend-Workflow activity. In response, it takes a checkpoint, suspends the workflow, and returns a workflow job object. Suspend-Workflow returns a workflow job object even if the workflow is not explicitly run as a job.
PS C:\> Test-Suspend -PSComputerName Server01
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Suspended True Server01 Test-Suspend
The following command resumes the Test-Suspend workflow in Job8. It uses the *Wait* parameter to hold the command prompt until the job is resumed.
PS C:\> Resume-Job -Name "Job8" -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Running True Server01 Test-Suspend
This command uses the **Receive-Job** cmdlet to get the results of the Test-Suspend workflow. The final command in the workflow returns a **TimeSpan** object that represents the elapsed time between the current date and time and the date and time that was saved in the $a variable before the workflow was suspended.
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」を参照してください。
パラメーター
-Confirm
コマンドレットを実行する前に確認を求めるメッセージが表示されます。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | cf |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-Filter
条件のハッシュ テーブルを指定します。 このコマンドレットは、ハッシュ テーブル内のすべての条件を満たすジョブを再開します。 キーがジョブ プロパティで、値がジョブ プロパティ値であるハッシュ テーブルを入力します。
パラメーターのプロパティ
| 型: | Hashtable |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
FilterParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Id
このコマンドレットが再開するジョブの ID の配列を指定します。
ID は、現在のセッションのジョブを一意に識別する整数です。 インスタンス ID よりも覚えて入力する方が簡単ですが、現在のセッションでのみ一意です。 1 つ以上の ID をコンマで区切って入力できます。 ジョブの ID を見つけるには、 Get-Job を実行します。
パラメーターのプロパティ
| 型: | Int32[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
SessionIdParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-InstanceId
このコマンドレットが再開するジョブのインスタンス ID の配列を指定します。 既定値はすべてのジョブです。
インスタンス ID は、コンピューター上のジョブを一意に識別する GUID です。 ジョブのインスタンス ID を見つけるには、 Get-Job を実行します。
パラメーターのプロパティ
| 型: | Guid[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
InstanceIdParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Job
再開するジョブを指定します。 ジョブを含む変数、またはジョブを取得するコマンドを入力します。 ジョブを Resume-Job コマンドレットにパイプ処理することもできます。
パラメーターのプロパティ
| 型: | Job[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
JobParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Name
このコマンドレットが再開するジョブのフレンドリ名の配列を指定します。 1 つ以上のジョブ名を入力します。 ワイルドカード文字を使用できます。
パラメーターのプロパティ
| 型: | String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
NameParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-State
再開するジョブの状態を指定します。 このパラメーターに使用できる値は次のとおりです。
- NotStarted
- ランニング
- 完了済み
- 失敗しました
- 停止しました
- ブロックされました
- 一時停止されています
- 切断された
- 一時停止
- 停車
このコマンドレットは、Suspended 状態のジョブのみを再開します。
ジョブの状態の詳細については、MSDN ライブラリの 「JobState 列挙 型」を参照してください。
パラメーターのプロパティ
| 型: | JobState |
| 規定値: | None |
| 指定可能な値: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
StateParameterSet
| 配置: | 0 |
| 必須: | True |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Wait
このコマンドレットは、すべてのジョブ結果が再起動されるまでコマンド プロンプトを抑制することを示します。 既定では、このコマンドレットはすぐに使用可能な結果を返します。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-WhatIf
コマンドレットを実行した場合の動作を示します。 コマンドレットは実行されません。
パラメーターのプロパティ
| 型: | SwitchParameter |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | ウィスコンシン |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。
入力
Job
このコマンドレットには、すべての種類のジョブをパイプ処理できます。 Resume-Job がサポートされていない種類のジョブを取得すると、終了エラーが返されます。
出力
None, System.Management.Automation.Job
このコマンドレットは、PassThru パラメーターを使用すると、再開しようとしているジョブを返します。 それ以外の場合、このコマンドレットは出力を生成しません。
メモ
- Resume-Job は、中断されたジョブのみを再開できます。 別の状態でジョブを送信すると、 Resume-Job はジョブに対して再開操作を実行しますが、ジョブを再開できなかったことを通知する警告が生成されます。 警告を抑制するには、WarningAction 共通パラメーターを使用し、値を SilentlyContinue に設定します。
- ジョブが再開をサポートする種類 (ワークフロー ジョブ (PSWorkflowJob)) でない場合、 Resume-Job は終了エラーを返します。
- 中断されたジョブを保存するメカニズムと場所は、ジョブの種類によって異なる場合があります。 たとえば、中断されたワークフロー ジョブは、既定ではフラット ファイル ストアに保存されますが、SQL データベースに保存することもできます。
- ジョブを再開すると、ジョブの状態が Suspended から Runningに変わります。 実行中のジョブ (このコマンドレットによって再開されたジョブを含む) を見つけるには、Get-Job コマンドレットの State パラメーターを使用して、実行中の状態のジョブを取得します。
- 一部のジョブの種類には、Windows PowerShell によるジョブの中断を妨げるオプションまたはプロパティがあります。 ジョブの中断が失敗した場合は、ジョブのオプションとプロパティで中断が許可されていることを確認します。