Suspend-Job
Временно останавливает задания рабочих процессов.
Синтаксис
Suspend-Job
[-Force]
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет приостановки задания приостановки задания приостанавливает задания рабочего процесса. Приостановка означает временное прерывание или приостановку задания рабочего процесса. Этот командлет позволяет пользователям, выполняющим рабочие процессы, приостановить рабочий процесс. Он дополняет действие приостановки рабочего процессаhttps://go.microsoft.com/fwlink/?LinkId=267141, которое является командой в рабочем процессе, который приостанавливает рабочий процесс.
Командлет приостановки задания
Чтобы определить задание рабочего процесса, найдите значение PSWorkflowJob в свойстве PSJobTypeName задания. Чтобы определить, поддерживает ли определенный настраиваемый тип задания командлет Suspend-Job, см. разделы справки для пользовательского типа задания.
При приостановке задания рабочего процесса задание рабочего процесса выполняется на следующей контрольной точке, приостанавливается и немедленно возвращает объект задания рабочего процесса.
Чтобы дождаться завершения приостановки перед получением задания, используйте параметр
Приостановка правильно зависит от контрольных точек. Текущее состояние задания, метаданные и выходные данные сохраняются в контрольной точке, чтобы задание рабочего процесса можно было возобновить без потери состояния или данных. Если задание рабочего процесса не имеет контрольных точек, оно не может быть приостановлено правильно. Чтобы добавить контрольные точки в запущенный рабочий процесс, используйте общий параметр PSPersist рабочего процесса. Можно использовать параметр Force, чтобы немедленно приостановить любое задание рабочего процесса и приостановить задание рабочего процесса, которое не имеет контрольных точек, но действие может привести к потере состояния и данных.
Прежде чем использовать командлет задания для пользовательского типа задания, например задание рабочего процесса (PSWorkflowJob), импортируйте модуль, поддерживающий настраиваемый тип задания, либо с помощью командлета Import-Module, либо с помощью командлета в модуле.
Этот командлет появился в Windows PowerShell 3.0.
Примеры
Пример 1. Приостановка задания рабочего процесса по имени
The first command creates the Get-SystemLog workflow. The workflow uses the CheckPoint-Workflow activity to define a checkpoint in the workflow.
#Sample WorkflowWorkflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
The second command uses the *AsJob* parameter that is common to all workflows to run the Get-SystemLog workflow as a background job. The command uses the *JobName* workflow common parameter to specify a friendly name for the workflow job.
PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"
The third command uses the **Get-Job** cmdlet to get the Get-SystemLogJob workflow job. The output shows that the value of the **PSJobTypeName** property is PSWorkflowJob.
PS C:\> Get-Job -Name Get-SystemLogJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Get-SystemLogJob PSWorkflowJob Running True localhost Get-SystemLog
The fourth command uses the **Suspend-Job** cmdlet to suspend the Get-SystemLogJob job. The job runs to the checkpoint and then suspends.
PS C:\> Suspend-Job -Name Get-SystemLogJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Get-SystemLogJob PSWorkflowJob Suspended True localhost Get-SystemLog
В этом примере показано, как приостановить задание рабочего процесса.
Пример 2. Приостановка и возобновление задания рабочего процесса
The first command suspends the LogWorkflowJob job.The command returns immediately. The output shows that the workflow job is still running, even though it is being suspended.
PS C:\> Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
The second command uses the **Get-Job** cmdlet to get the LogWorkflowJob job. The output shows that the workflow job suspended successfully.
PS C:\> Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
The third command uses the **Get-Job** cmdlet to get the LogWorkflowJob job and the Resume-Job cmdlet to resume it. The output shows that the workflow job resumed successfully and is now running.
PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
В этом примере показано, как приостановить и возобновить задание рабочего процесса.
Пример 3. Приостановка задания рабочего процесса на удаленном компьютере
PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}
Эта команда использует командлет Invoke-Command для приостановки задания рабочего процесса на удаленном компьютере Srv01. Значение параметра filter — это хэш-таблица, указывающая значение CustomID. Этот CustomID — метаданные задания (PSPrivateMetadata).
Пример 4. Дождитесь приостановки задания рабочего процесса
PS C:\> Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Эта команда приостанавливает задание рабочего процесса VersionCheck. Команда использует параметр Wait, чтобы дождаться приостановки задания рабочего процесса. Когда задание рабочего процесса выполняется до следующей контрольной точки и приостановлено, команда завершает работу и возвращает объект задания.
Пример 5. Принудительное приостановка задания рабочего процесса
PS C:\> Suspend-Job Maintenance -Force
Эта команда принудительно приостанавливает задание рабочего процесса обслуживания. Задание обслуживания не имеет контрольных точек. Его невозможно приостановить правильно и может не возобновиться правильно.
Параметры
-Confirm
Запрашивает подтверждение перед запуском командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Filter
Задает хэш-таблицу условий. Этот командлет приостанавливает задания, удовлетворяющие всем условиям. Введите хэш-таблицу, в которой ключи являются свойствами задания и значениями свойств задания.
Тип: | Hashtable |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Force
Немедленно приостанавливает задание рабочего процесса. Это действие может привести к потере состояния и данных.
По умолчанию приостановка задания позволяет заданию рабочего процесса выполняться до следующей контрольной точки, а затем приостановить ее. Этот параметр также можно использовать для приостановки заданий рабочего процесса, которые не имеют контрольных точек.
Тип: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | 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
Указывает задания рабочего процесса, которые останавливает этот командлет. Введите переменную, содержащую задания рабочего процесса или команду, которая получает задания рабочего процесса. Можно также передать задания рабочего процесса в командлет Suspend-Job.
Тип: | Job[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Указывает понятные имена заданий, которые этот командлет приостанавливает. Введите одно или несколько имен заданий рабочего процесса. Поддерживаются подстановочные знаки.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-State
Указывает состояние задания. Этот командлет останавливает только задания в указанном состоянии. Допустимые значения для этого параметра:
- NotStarted
- Бег
- Завершённый
- Неудавшийся
- Остановленный
- Блокированный
- Подвешенный
- Бессвязный
- Приостановка
- Зубная пломба
Приостановка задания приостанавливает только задания рабочих процессов в состоянии выполнения.
Дополнительные сведения о состояниях заданий см. в перечисления JobState в библиотеке MSDN.
Тип: | 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 |
Входные данные
Вы можете передать все типы заданий в этот командлет. Однако если приостановке задания получает задание неподдерживаемого типа, возвращается завершающая ошибка.
Выходные данные
Этот командлет возвращает задания, приостановленные.
Примечания
Механизм и расположение для сохранения приостановленного задания может отличаться в зависимости от типа задания. Например, приостановленные задания рабочего процесса сохраняются в неструктурированном хранилище файлов по умолчанию, но также могут быть сохранены в базе данных.
Если вы отправляете задание рабочего процесса, которое не находится в состоянии "Выполнение", приостанавливать задание отображает предупреждение. Чтобы отключить предупреждение, используйте WarningAction общий параметр со значением SilentlyContinue.
Если задание не является типом, поддерживающим приостановку, приостановка задания возвращает завершающую ошибку.
Чтобы найти приостановленные задания рабочего процесса, включая приостановленные этим командлетом, используйте параметр State командлета Get-Job, чтобы получить задания рабочего процесса в состоянии приостановки.
Некоторые типы заданий имеют параметры или свойства, которые не позволяют Windows PowerShell приостановить задание. Если попытка приостановить задание завершается ошибкой, убедитесь, что параметры и свойства задания разрешают приостановку.