次の方法で共有


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 でジョブを再開する

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

コマンドレットの実行前に確認を求めるメッセージが表示されます。

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

条件のハッシュ テーブルを指定します。 このコマンドレットは、ハッシュ テーブル内のすべての条件を満たすジョブを再開します。 ジョブのプロパティをキー、ジョブのプロパティ値を値とするハッシュ テーブルを入力します。

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Id

このコマンドレットが再開するジョブの ID の配列を指定します。

ID は、現在のセッションのジョブを一意に識別する整数です。 インスタンス ID よりも覚えて入力する方が簡単ですが、現在のセッションでのみ一意です。 1 つ以上の ID をコンマで区切って入力できます。 ジョブの ID を見つけるには、 Get-Job を実行します

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

このコマンドレットが再開するジョブのインスタンス ID の配列を指定します。 既定値はすべてのジョブです。

インスタンス ID は、コンピューター上のジョブを一意に識別する GUID です。 ジョブのインスタンス ID を見つけるには、 Get-Job を実行します

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Job

再開するジョブを指定します。 ジョブが格納されている変数、またはジョブを取得するコマンドを入力します。 パイプを使用してジョブを Resume-Job コマンドレットに渡すこともできます。

Type:Job[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

このコマンドレットが再開するジョブのフレンドリ名の配列を指定します。 1 つまたは複数のジョブ名を入力します。 ワイルドカード文字を使用できます。

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-State

再開するジョブの状態を指定します。 このパラメーターの有効値は、次のとおりです。

  • NotStarted
  • 実行中
  • 完了
  • 失敗
  • 停止済み
  • Blocked
  • Suspended
  • [Disconnected](切断済み)
  • 中断中
  • 停止中

このコマンドレットは、 中断 状態のジョブのみを再開します。

ジョブの状態の詳細については、MSDN ライブラリの 「JobState 列挙」を 参照してください。

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Wait

このコマンドレットは、すべてのジョブ結果が再起動されるまでコマンド プロンプトを抑制することを示します。 既定では、このコマンドレットは使用可能な結果をすぐに返します。

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

コマンドレットの実行時に発生する内容を示します。 このコマンドレットは実行されません。

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

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 によるジョブの中断が許可されないオプションまたはプロパティを持つもあります。 ジョブの中断が失敗した場合は、ジョブのオプションとプロパティで中断が許可されていることを確認します。