共用方式為


Resume-Job

重新啟動暫停的工作。

Syntax

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>]

Description

Cmdlet 會 Resume-Job 繼續暫停的工作流程工作,例如使用 Suspend-Job Cmdlet 或 about_Suspend-Workflow 活動。 當工作流程作業繼續時,作業引擎會重新建構已儲存資源的狀態、元數據和輸出,例如檢查點。 作業會重新啟動,而不會遺失狀態或數據。 作業狀態已從 [暫停] 變更為 [執行中]。

使用的參數Resume-Job,依名稱、標識符、實例標識碼或管線將作業物件選取,例如 Cmdlet 傳回的Get-Job作業物件。Resume-Job 您也可以使用屬性篩選來選取要繼續的工作。

根據預設, Resume-Job 即使所有作業可能尚未繼續,仍會立即傳回 。 若要隱藏命令提示字元,直到所有指定的作業繼續為止,請使用 Wait 參數。

Cmdlet Resume-Job 僅適用於自定義作業類型,例如工作流程作業。 它不適用於標準背景工作,例如使用 Cmdlet 所啟動的背景 Start-Job 工作。 如果您提交不支援類型的作業, Resume-Job 則會產生終止錯誤並停止執行。

若要識別工作流程作業,請在作業的 PSJobTypeName 屬性中尋找 PSWorkflowJob 的值。 若要判斷特定自定義作業類型是否支援 Resume-Job Cmdlet,請參閱自定義作業類型的說明主題。

在自訂作業類型上使用作業 Cmdlet 之前,請先匯入支援自定義作業類型的模組,方法是使用 Import-Module Cmdlet 或在模組中使用 Cmdlet。

此 Cmdlet 已在 Windows PowerShell 3.0 中引進。

範例

範例 1:依標識符繼續作業

此範例中的命令會確認作業是暫停的工作流程作業,然後繼續作業。 第一個命令會 Get-Job 使用 Cmdlet 來取得作業。 輸出會顯示作業是暫停的工作流程作業。 第二個命令會使用 Cmdlet 的 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 使用 Cmdlet 在 Srv01 電腦上執行命令。 遠端命令會使用 Cmdlet 的 Get-Job State 參數,取得電腦上所有暫止的工作。 管線運算符 (|) 會將暫止的工作傳送至 Resume-Job Cmdlet,以繼續作業。

範例 5:等候作業繼續

這個指令會 使用 Wait 參數,在繼續所有指定的作業之後,才直接 Resume-Job 傳回 。 Wait 參數在腳本中特別有用,這些腳本假設在腳本繼續之前會繼續作業。

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait

範例 6:繼續暫停本身的工作流程

此程式代碼範例會顯示 Suspend-Workflow 工作流程中的活動。

Test-Suspend Server01 電腦上的工作流程。 當您執行工作流程時,工作流程會執行 Get-Date 活動,並將結果儲存在變數中 $a 。 然後它會執行 Suspend-Workflow 活動。 回應中,它會取得檢查點、暫停工作流程,並傳回工作流程作業物件。 Suspend-Workflow 即使工作流程未明確以作業的形式執行,仍會傳回工作流程工作物件。

Resume-JobTest-Suspend繼續 Job8 中的工作流程。 它會使用 Wait 參數來保存命令提示字元,直到作業繼續為止。

Cmdlet Receive-Job 會取得工作流程的結果 Test-Suspend 。 工作流程中的最後一個 命令會傳回 TimeSpan 物件,代表目前日期和時間之間的經過時間,以及工作流程暫停之前儲存在變數中的 $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

Cmdlet Resume-Job 可讓您繼續使用 活動暫停的 Suspend-Workflow 工作流程作業。 此活動會從工作流程內暫停工作流程。 只有在工作流程中才有效。

如需 的相關信息 Suspend-Workflow,請參閱 about_Suspend-Workflow](.。/PSWorkflow/about/about_Suspend-Workflow.md)。

參數

-Confirm

執行 Cmdlet 之前先提示您確認。

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

-Filter

指定條件的哈希表。 此 Cmdlet 會繼續符合哈希表中所有條件的工作。 輸入哈希表,其中索引鍵是作業屬性,而值是作業屬性值。

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

-Id

指定此 Cmdlet 繼續作業的識別子陣列。

標識碼是整數,可唯一識別目前會話中的作業。 比實例標識碼更容易記住和輸入,但只在目前的會話中是唯一的。 您可以輸入一或多個識別碼,並以逗號分隔。 若要尋找作業的識別碼,請執行 Get-Job

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

-InstanceId

指定此 Cmdlet 繼續執行之作業實例識別碼的陣列。 預設值為所有作業。

實例標識碼是可唯一識別計算機上作業的 GUID。 若要尋找作業的實體識別碼,請執行 Get-Job

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

-Job

指定要繼續的工作。 輸入包含作業的變數,或取得作業的命令。 您也可以使用管線將作業傳送至 Resume-Job Cmdlet。

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

-Name

指定此 Cmdlet 繼續的易記作業名稱陣列。 輸入一或多個作業名稱。 允許通配符。

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

-State

指定要繼續的作業狀態。 此參數可接受的值為:

  • 未開始
  • 執行中
  • 已完成
  • 失敗
  • 已停止
  • 已封鎖
  • 暫止
  • 已中斷連接
  • 暫停中
  • 停止中

此 Cmdlet 只會繼續處於 暫停 狀態的工作。

如需作業狀態的詳細資訊,請參閱 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

表示此 Cmdlet 會隱藏命令提示字元,直到重新啟動所有作業結果為止。 根據預設,此 Cmdlet 會立即傳回可用的結果。

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

-WhatIf

顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。

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

輸入

Job

您可以使用管線將所有類型的作業傳送至此 Cmdlet。 如果 Resume-Job 取得不支援類型的作業,則會傳回終止錯誤。

輸出

None, System.Management.Automation.Job

如果您使用 PassThru 參數,此 Cmdlet 會傳回它嘗試繼續的工作。 否則,此 Cmdlet 不會產生任何輸出。

備註

Windows PowerShell 包含下列的 Resume-Job別名:

  • rujb

  • Resume-Job 只能繼續暫停的工作。 如果您以不同的狀態提交作業, Resume-Job 請在作業上執行繼續作業,但會產生警告,通知您無法繼續作業。 若要隱藏警告,請使用 WarningAction 一般參數搭配 SilentlyContinue 值。

  • 如果作業不是支持繼續的類型,例如工作流程作業 (PSWorkflowJob), Resume-Job 則會傳回終止錯誤。

  • 儲存暫停作業的機制和位置可能會因作業類型而異。 例如,暫停的工作流程工作預設會儲存在一般檔案存放區中,但也可以儲存在 SQL 資料庫中。

  • 當您繼續作業時,作業狀態會從 [暫停 ] 變更為 [執行中]。 若要尋找正在執行的作業,包括此 Cmdlet 所繼續的工作,請使用 Cmdlet 的 Get-Job State 參數來取得處於執行中狀態的作業

  • 某些作業類型有選項或屬性,可防止 Windows PowerShell 暫停作業。 如果嘗試暫停作業失敗,請確認作業選項和屬性允許暫停。