Resume-Job
重启挂起的作业。
语法
SessionIdParameterSet (默认值)
Resume-Job
[-Id] <Int32[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Resume-Job
[-Job] <Job[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Resume-Job
[-Name] <String[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Resume-Job
[-InstanceId] <Guid[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Resume-Job
[-State] <JobState>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Resume-Job
[-Filter] <Hashtable>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
说明
Resume-Job cmdlet 恢复挂起的工作流作业,例如使用 Suspend-Job cmdlet 或 about_Suspend-Workflow 活动。 工作流作业恢复时,作业引擎会重新构造已保存资源(例如检查点)的状态、元数据和输出。 作业将重启,而不会丢失状态或数据。 作业状态从 挂起 更改为 运行。
使用 Resume-Job 的参数按名称、ID、实例 ID 或管道选择作业对象,例如由 Get-Job cmdlet 返回的作业对象,以 Resume-Job。 还可以使用属性筛选器选择要恢复的作业。
默认情况下,Resume-Job 会立即返回,即使尚未恢复所有作业。 若要在恢复所有指定作业之前取消命令提示符,请使用 Wait 参数。
Resume-Job cmdlet 仅适用于自定义作业类型,例如工作流作业。 它不适用于标准后台作业,例如使用 Start-Job cmdlet 启动的作业。 如果提交不受支持的类型的作业,Resume-Job 将生成终止错误并停止运行。
若要标识工作流作业,请在作业的 PSJobTypeName 属性中查找 PSWorkflowJob 的值。 若要确定特定自定义作业类型是否支持 Resume-Job cmdlet,请参阅自定义作业类型的帮助主题。
在自定义作业类型上使用作业 cmdlet 之前,请使用 Import-Module cmdlet 或获取或使用模块中的 cmdlet 导入支持自定义作业类型的模块。
此 cmdlet 已在 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 cmdlet 在 Srv01 计算机上运行命令。 远程命令使用 Get-Job cmdlet 的 State 参数获取计算机上所有挂起的作业。 管道运算符 (|) 将挂起的作业发送到 Resume-Job cmdlet,该 cmdlet 将恢复这些作业。
示例 5:等待作业恢复
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait
此命令使用 Wait 参数指示 恢复作业 仅在恢复所有指定作业后返回。 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 cmdlet 允许使用 Suspend-Workflow 活动恢复挂起的工作流作业。 此活动从工作流中挂起工作流。 它仅在工作流中有效。
有关 Suspend-Workflow 的信息,请参阅 about_Suspend-Workflow。
参数
-Confirm
在运行 cmdlet 之前,提示你进行确认。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | cf |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-Filter
指定条件的哈希表。 此 cmdlet 恢复满足哈希表中所有条件的作业。 输入一个哈希表,其中键是作业属性,值是作业属性值。
参数属性
| 类型: | Hashtable |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
FilterParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Id
指定此 cmdlet 恢复的作业的 ID 数组。
ID 是一个整数,用于在当前会话中唯一标识作业。 记住和键入比实例 ID 更容易,但它仅在当前会话中是唯一的。 可以键入一个或多个 ID,用逗号分隔。 若要查找作业的 ID,请运行 Get-Job。
参数属性
| 类型: | Int32[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
SessionIdParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-InstanceId
指定此 cmdlet 恢复的作业实例 ID 的数组。 默认值为所有作业。
实例 ID 是一个 GUID,用于在计算机上唯一标识作业。 若要查找作业的实例 ID,请运行 Get-Job。
参数属性
| 类型: | Guid[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
InstanceIdParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Job
指定要恢复的作业。 输入一个包含作业的变量或一个获取作业的命令。 还可以通过管道将作业传递给 Resume-Job cmdlet。
参数属性
| 类型: | Job[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
JobParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | True |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Name
指定此 cmdlet 恢复的作业的友好名称数组。 输入一个或多个作业名称。 允许使用通配符。
参数属性
| 类型: | String[] |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
NameParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-State
指定要恢复的作业的状态。 此参数的可接受值为:
- NotStarted
- 跑步
- 完成
- 已失败
- 已停止
- 封锁
- 已暂停
- 已断开连接
- 暂停中
- 停止中
此 cmdlet 仅恢复处于 挂起 状态的作业。
有关作业状态的详细信息,请参阅 MSDN 库中 JobState 枚举。
参数属性
| 类型: | JobState |
| 默认值: | None |
| 接受的值: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| 支持通配符: | False |
| 不显示: | False |
参数集
StateParameterSet
| Position: | 0 |
| 必需: | True |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | True |
| 来自剩余参数的值: | False |
-Wait
指示此 cmdlet 在重新启动所有作业结果之前取消命令提示符。 默认情况下,此 cmdlet 会立即返回可用结果。
参数属性
| 类型: | SwitchParameter |
| 默认值: | None |
| 支持通配符: | False |
| 不显示: | False |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
-WhatIf
显示 cmdlet 运行时会发生什么情况。 命令脚本未运行。
参数属性
| 类型: | SwitchParameter |
| 默认值: | False |
| 支持通配符: | False |
| 不显示: | False |
| 别名: | 无线 |
参数集
(All)
| Position: | Named |
| 必需: | False |
| 来自管道的值: | False |
| 来自管道的值(按属性名称): | False |
| 来自剩余参数的值: | False |
CommonParameters
此 cmdlet 支持通用参数:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 有关详细信息,请参阅 about_CommonParameters。
输入
Job
可以通过管道将所有类型的作业传递给此 cmdlet。 如果 Resume-Job 获取不受支持的类型的作业,它将返回终止错误。
输出
None, System.Management.Automation.Job
如果使用 PassThru 参数,此 cmdlet 将返回它尝试恢复的作业。 否则,此 cmdlet 不会生成任何输出。
备注
- 恢复作业 只能恢复挂起的作业。 如果提交处于不同状态的作业,Resume-Job 对作业运行恢复操作,但会生成警告以通知你无法恢复作业。 若要禁止显示警告,请使用 WarningAction 具有 SilentlyContinue 值的公共参数。
- 如果作业不是支持恢复的类型,例如工作流作业(PSWorkflowJob),Resume-Job 返回终止错误。
- 保存挂起作业的机制和位置可能因作业类型而异。 例如,挂起的工作流作业默认保存在平面文件存储中,但也可以保存在 SQL 数据库中。
- 恢复作业时,作业状态从 挂起 更改为 运行。 若要查找正在运行的作业(包括此 cmdlet 恢复的作业),请使用 Get-Job cmdlet 的 State 参数来获取 处于运行 状态的作业。
- 某些作业类型具有可阻止 Windows PowerShell 挂起作业的选项或属性。 如果尝试暂停作业失败,请验证作业选项和属性是否允许挂起。