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>]
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-Job
Test-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 之前先提示您確認。
類型: | SwitchParameter |
別名: | cf |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-Filter
指定條件的哈希表。 此 Cmdlet 會繼續符合哈希表中所有條件的工作。 輸入哈希表,其中索引鍵是作業屬性,而值是作業屬性值。
類型: | Hashtable |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Id
指定此 Cmdlet 繼續作業的識別子陣列。
標識碼是整數,可唯一識別目前會話中的作業。 比實例標識碼更容易記住和輸入,但只在目前的會話中是唯一的。 您可以輸入一或多個識別碼,並以逗號分隔。 若要尋找作業的識別碼,請執行 Get-Job
。
類型: | Int32[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-InstanceId
指定此 Cmdlet 繼續執行之作業實例識別碼的陣列。 預設值為所有作業。
實例標識碼是可唯一識別計算機上作業的 GUID。 若要尋找作業的實體識別碼,請執行 Get-Job
。
類型: | Guid[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Job
指定要繼續的工作。 輸入包含作業的變數,或取得作業的命令。 您也可以使用管線將作業傳送至 Resume-Job
Cmdlet。
類型: | Job[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Name
指定此 Cmdlet 繼續的易記作業名稱陣列。 輸入一或多個作業名稱。 允許通配符。
類型: | String[] |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-State
指定要繼續的作業狀態。 此參數可接受的值為:
- 未開始
- 執行中
- 已完成
- 失敗
- 已停止
- 封鎖
- 暫止
- 已中斷連接
- 暫停中
- 正在停止
此 Cmdlet 只會繼續處於 暫停 狀態的工作。
如需作業狀態的詳細資訊,請參閱 JobState 列舉。
類型: | JobState |
接受的值: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
預設值: | None |
必要: | True |
接受管線輸入: | True |
接受萬用字元: | False |
-Wait
表示此 Cmdlet 會隱藏命令提示字元,直到重新啟動所有作業結果為止。 根據預設,此 Cmdlet 會立即傳回可用的結果。
類型: | SwitchParameter |
Position: | Named |
預設值: | None |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 後會發生的情況。 未執行 Cmdlet。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
您可以使用管線將所有類型的作業傳送至此 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 暫停作業。 如果嘗試暫停作業失敗,請確認作業選項和屬性允許暫停。