次の方法で共有


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 値 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 パラメーターを使用して、コンピューター上のすべての中断されたジョブを取得します。 パイプライン演算子 (|) は、中断されたジョブを 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 オブジェクトを返します。

#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 状態のジョブのみを再開します。

ジョブの状態の詳細については、「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

入力

Job

このコマンドレットには、すべての種類のジョブをパイプ処理できます。 Resume-Job サポートされていない型のジョブを取得すると、終了エラーが返されます。

出力

None, System.Management.Automation.Job

このコマンドレットは、PassThru パラメーターを使用すると、再開しようとしているジョブを返します。 それ以外の場合、このコマンドレットは出力を生成しません。

メモ

Windows PowerShell には、Resume-Jobの次のエイリアスが含まれています。

  • rujb

  • Resume-Job は、中断されているジョブのみを再開できます。 ジョブを別の状態で送信した場合、Resume-Job はジョブに対して再開操作を実行しますが、ジョブを再開できなかったことを通知する警告を生成します。 警告を抑制するには、WarningAction 共通パラメーターを使用し、値を SilentlyContinue に設定します。

  • ジョブが再開をサポートする型ではない場合 (PSWorkflowJob)、Resume-Job 終了エラーが返されます。

  • 中断されたジョブを保存するメカニズムと場所は、ジョブの種類によって異なる場合があります。 たとえば、中断されたワークフロー ジョブは、既定ではフラット ファイル ストアに保存されますが、SQL データベースに保存することもできます。

  • ジョブを再開すると、ジョブの状態が Suspended から Runningに変わります。 実行中のジョブ (このコマンドレットによって再開されたものも含む) を見つけるには、 コマンドレットの Get-Job パラメーターを使用して、実行中 状態のジョブを取得します。

  • 一部のジョブの種類には、Windows PowerShell によるジョブの中断を妨げるオプションまたはプロパティがあります。 ジョブの中断が失敗した場合は、ジョブのオプションとプロパティで中断が許可されていることを確認します。