about_Suspend-Workflow
簡単な説明
アクティビティが表示されるワークフローを中断する Suspend-Workflow
アクティビティについて説明します。
詳細な説明
Suspend-Workflow
アクティビティは、ワークフロー内からのワークフロー処理を一時的に停止します。 中断する前に、Windows PowerShell ワークフローはチェックポイントを取得するため、ワークフローの状態とデータは保持され、ワークフローは中断ポイントから再開できます。
ワークフローを再開するには、ワークフローを実行しているユーザーが Resume-Job
コマンドレットを使用します。 ワークフロー内からワークフローを再開することはできません。
構文
workflow <Verb-Noun>
{
Suspend-Workflow
}
詳しい説明
Suspend-Workflow
はワークフローを一時的に停止し、ワークフロー ジョブを表すジョブ オブジェクトを返します。 ワークフローをジョブとして実行しなかった場合でも、ジョブ オブジェクトが返されます。 たとえば、 AsJob ワークフロー共通パラメーターを使用するなどです。 ジョブの状態は Suspended です。
ジョブ コマンドレットを使用して、中断されたワークフロー ジョブを管理できます。 ワークフロー ジョブを再開するには、 Resume-Job
コマンドレットを使用します。
ワークフロー ジョブを再開すると、ワークフローは、 Suspend-Workflow
アクティビティに続くコマンドで再開されます。
たとえば、次のワークフローには、 Suspend-Workflow
アクティビティが含まれています。
ワークフローを実行すると、 Get-Date
アクティビティが実行され、その出力が $a
変数に保存され、ワークフローが中断され、中断されたワークフローを表すジョブ オブジェクトが返されます。 ジョブの種類は PSWorkflowJob です。
Get-Job
などのジョブ コマンドレットを使用して、ワークフロー ジョブを管理できます。
Workflow Test-Suspend
{
$a = Get-Date
Suspend-Workflow
(Get-Date)- $a
}
Test-Suspend
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Suspended True localhost Test-Suspend
ワークフロー ジョブの再開
ワークフロー ジョブを再開するには、 Resume-Job
コマンドレットを使用します。 Resume-Job
コマンドレットは、まだ再開されていない可能性がある場合でも、ワークフロー ジョブ オブジェクトを直ちに返します。 ジョブが再開されるのを待つには、 Wait パラメーターを使用するか、 Get-Job
コマンドレットを使用して現在のジョブ オブジェクトを取得します。
Resume-Job -Name Job8
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Running True localhost Test-Suspend
Get-Job -Name Job8
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Completed True localhost Test-Suspend
ワークフロー ジョブの出力を取得する
ワークフロー ジョブの出力を取得するには、 Receive-Job
コマンドレットを使用します。 出力は、 Suspend-Workflow
コマンドレットに続くコマンドでワークフローが再開されたことを示しています。 中断の前に設定された $a
変数の値は、再開時にワークフローで使用できます。
Get-Job -Name Job8 | Receive-Job
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 : localhost
関連項目
PowerShell