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 . Когда задание рабочего процесса возобновляется, подсистема заданий восстанавливает состояние, метаданные и выходные данные из сохраненных ресурсов, таких как контрольные точки. Задание перезапущено без потери состояния или данных.
Состояние задания изменяется с "Приостановлено" на "Запущено".
Используйте параметры для выбора заданий по имени, идентификатору Resume-Job
, идентификатору экземпляра или каналу объекта задания, например одному из возвращаемых командлетом Get-Job
Resume-Job
. Для выбора задания, которое нужно возобновить, можно также использовать фильтр свойств.
По умолчанию возвращается немедленно, Resume-Job
даже если все задания еще не будут возобновлены. Чтобы отключить командную строку до возобновления всех указанных заданий, используйте параметр Wait .
Командлет Resume-Job
работает только в пользовательских типах заданий, таких как задания рабочего процесса. Он не работает на стандартных фоновых заданиях, таких как запущенные с помощью командлета Start-Job
. Если вы отправляете задание неподдерживаемого типа, Resume-Job
создает завершающую ошибку и перестает работать.
Чтобы определить задание рабочего процесса, найдите значение PSWorkflowJob в свойстве PSJobTypeName задания. Чтобы определить, поддерживает Resume-Job
ли определенный настраиваемый тип задания командлет, см. разделы справки для пользовательского типа задания.
Прежде чем использовать командлет задания для пользовательского типа задания, импортируйте модуль, поддерживающий настраиваемый тип задания, с помощью Import-Module
командлета или получения или использования командлета в модуле.
Этот командлет впервые появился в Windows PowerShell 3.0.
Примеры
Пример 1. Возобновление задания по идентификатору
Команды в этом примере проверяют, является ли задание приостановленным заданием рабочего процесса, а затем возобновляют его. Первая команда использует Get-Job
командлет для получения задания. Выходные данные показывают, что задание является приостановленным заданием рабочего процесса. Вторая команда использует параметр id командлета Resume-Job
для возобновления задания со значением идентификатора 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. Удаленная команда использует параметр State командлета Get-Job
для получения всех приостановленных заданий на компьютере. Оператор конвейера (|
) отправляет приостановленные задания командлету Resume-Job
, который возобновляет их.
Пример 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 для хранения командной строки до возобновления задания.
Командлет 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
Командлет Resume-Job
позволяет возобновить задание рабочего процесса, которое было приостановлено с помощью Suspend-Workflow
действия. Это действие приостанавливает рабочий процесс из самого процесса. Оно допустимо только в рабочих процессах.
Дополнительные сведения об этом Suspend-Workflow
см. в разделе about_Suspend-Workflow](.). /PSWorkflow/about/about_Suspend-Workflow.md).
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Filter
Задает хэш-таблицу условий. Этот командлет возобновляет задания, удовлетворяющие всем условиям в хэш-таблице. Введите хэш-таблицу, где ключи являются свойствами заданий, а значения — значениями этих свойств.
Тип: | Hashtable |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Id
Задает массив идентификаторов для заданий, возобновляемых этим командлетом.
Идентификатор — это целое число, которое однозначно идентифицирует задание в текущем сеансе. Проще помнить и вводить идентификатор экземпляра, но он является уникальным только в текущем сеансе. Можно ввести один или несколько идентификаторов, разделенных запятыми. Чтобы найти идентификатор задания, выполните команду Get-Job
.
Тип: | Int32[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-InstanceId
Задает массив идентификаторов экземпляров заданий, возобновляемых этим командлетом. По умолчанию останавливаются все задания.
Идентификатор экземпляра — это GUID, который однозначно определяет задание на компьютере. Чтобы найти идентификатор экземпляра задания, выполните команду Get-Job
.
Тип: | Guid[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Job
Указывает задания, которые нужно возобновить. Введите переменную, содержащую задания, либо команду, которая их возвращают. Можно также передать задания командлету Resume-Job
.
Тип: | Job[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Задает массив понятных имен заданий, возобновляемых этим командлетом. Введите одно или несколько имен заданий. Можно использовать подстановочные знаки.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-State
Указывает состояние возобновления заданий. Допустимые значения для этого параметра:
- NotStarted
- Выполняется
- Завершено
- Неудачно
- Остановлено
- Заблокировано
- Приостановлена
- Отключено
- Приостановка
- Остановка
Этот командлет возобновляет задания только в состоянии приостановки.
Дополнительные сведения о состояниях заданий см. в разделе "Перечисление JobState".
Тип: | JobState |
Допустимые значения: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Wait
Указывает, что этот командлет подавляет командную строку до перезапуска всех результатов задания. По умолчанию этот командлет немедленно возвращает доступные результаты.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать все типы заданий в этот командлет. Если Resume-Job
получает задание неподдерживаемого типа, возвращается завершающая ошибка.
Выходные данные
None, System.Management.Automation.Job
Этот командлет возвращает задания, которые он пытается возобновить, если используется параметр PassThru . В противном случае командлет не формирует никаких выходных данных.
Примечания
Windows PowerShell включает следующие псевдонимы для Resume-Job
:
rujb
Resume-Job
может возобновить только приостановленные задания. Если вы отправляете задание в другом состоянии,Resume-Job
выполняет операцию возобновления задания, но создает предупреждение, чтобы уведомить вас о том, что задание не удалось возобновить. Чтобы отключить предупреждение, используйте общий параметр WarningAction со значением SilentlyContinue.Если задание не является типом, поддерживающим возобновление, например задание рабочего процесса (PSWorkflowJob),
Resume-Job
возвращает завершающую ошибку.Механизм и место сохранения приостановленного задания могут различаться в зависимости от его типа. Например, по умолчанию приостановленные задания рабочих процессов сохраняются в хранилище неструктурированных файлов, но также могут сохраняться в базе данных SQL.
При возобновлении задания состояние задания изменяется с "Приостановлено на выполнение". Чтобы найти выполняемые задания, в том числе те, которые были возобновлены этим командлетом, используйте параметр
Get-Job
State командлета для получения заданий в состоянии выполнения.Задания некоторых типов имеют параметры или свойства, которые не позволяют среде Windows PowerShell приостанавливать их. Если попытка приостановить задание завершается ошибкой, убедитесь, что параметры и свойства задания разрешают приостановку.
Связанные ссылки
PowerShell