Suspend-Job
Временно останавливает задания рабочих процессов.
Синтаксис
SessionIdParameterSet (По умолчанию)
Suspend-Job
[-Id] <Int32[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Suspend-Job
[-Name] <String[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Suspend-Job
[-InstanceId] <Guid[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Suspend-Job
[-Filter] <Hashtable>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Suspend-Job
[-State] <JobState>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Suspend-Job приостанавливает задания рабочего процесса. Приостановка означает временное прерывание или приостановку задания рабочего процесса. Этот командлет позволяет пользователям, выполняющим рабочие процессы, приостановить рабочий процесс. Он дополняет действие приостановки рабочего процессаhttps://go.microsoft.com/fwlink/?LinkId=267141, которое является командой в рабочем процессе, который приостанавливает рабочий процесс.
Командлет Suspend-Job работает только в заданиях рабочего процесса. Он не работает на стандартных фоновых заданиях, таких как запущенные с помощью командлета Start-Job.
Чтобы определить задание рабочего процесса, найдите значение PSWorkflowJob в свойстве PSJobTypeName задания. Чтобы определить, поддерживает ли определенный настраиваемый тип задания командлет Suspend-Job, см. разделы справки для пользовательского типа задания.
При приостановке задания рабочего процесса задание рабочего процесса выполняется на следующей контрольной точке, приостанавливается и немедленно возвращает объект задания рабочего процесса. Чтобы дождаться завершения приостановки перед получением задания, используйте параметр WaitSuspend-Job или командлет Wait-Job. При приостановке задания рабочего процесса значение свойства State задания приостановлено.
Приостановка правильно зависит от контрольных точек. Текущее состояние задания, метаданные и выходные данные сохраняются в контрольной точке, чтобы задание рабочего процесса можно было возобновить без потери состояния или данных. Если задание рабочего процесса не имеет контрольных точек, оно не может быть приостановлено правильно. Чтобы добавить контрольные точки в запущенный рабочий процесс, используйте общий параметр PSPersist рабочего процесса. Можно использовать параметр Force, чтобы немедленно приостановить любое задание рабочего процесса и приостановить задание рабочего процесса, которое не имеет контрольных точек, но действие может привести к потере состояния и данных.
Прежде чем использовать командлет задания для пользовательского типа задания, например задание рабочего процесса (PSWorkflowJob), импортируйте модуль, поддерживающий настраиваемый тип задания, либо с помощью командлета Import-Module, либо с помощью командлета в модуле.
Этот командлет был введён в Windows PowerShell 3.0.
Примеры
Пример 1. Приостановка задания рабочего процесса по имени
В этом примере показано, как приостановить задание рабочего процесса.
Первая команда создает рабочий процесс Get-SystemLog. Рабочий процесс использует действие CheckPoint-Workflow для определения контрольной точки в рабочем процессе.
Вторая команда использует параметр AsJob, который является общим для всех рабочих процессов для запуска рабочего процесса Get-SystemLog в качестве фонового задания. Команда использует общий параметр JobName рабочего процесса, чтобы указать понятное имя для задания рабочего процесса.
Третья команда использует командлет Get-Job для получения задания LogflowJob рабочего процесса. В выходных данных показано, что значение свойства PSJobTypeName psWorkflowJob.
Четвертая команда использует командлет Suspend-Job для приостановки задания LogflowJob. Задание выполняется на контрольной точке, а затем приостанавливается.
#Sample Workflow
workflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
inlinescript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Running True localhost Get-SystemLog
Suspend-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Suspended True localhost Get-SystemLog
Пример 2. Приостановка и возобновление задания рабочего процесса
В этом примере показано, как приостановить и возобновить задание рабочего процесса.
Первая команда приостанавливает задание LogWorkflowJob. Команда возвращается немедленно. Выходные данные показывают, что задание рабочего процесса по-прежнему выполняется, даже если оно приостановлено.
Вторая команда использует командлет Get-Job для получения задания LogWorkflowJob. В выходных данных показано, что задание рабочего процесса успешно приостановлено.
Третья команда использует командлет Get-Job для получения задания LogWorkflowJob и командлета Resume-Job для возобновления работы. В выходных данных показано, что задание рабочего процесса успешно возобновилось и теперь выполняется.
Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Пример 3. Приостановка задания рабочего процесса на удаленном компьютере
Invoke-Command -ComputerName Srv01 -ScriptBlock {Suspend-Job -Filter @{CustomID="031589"}
Эта команда использует командлет Invoke-Command для приостановки задания рабочего процесса на удаленном компьютере Srv01. Значение параметра filter — это хэш-таблица, указывающая значение CustomID.
Этот CustomID — метаданные задания (PSPrivateMetadata).
Пример 4. Дождитесь приостановки задания рабочего процесса
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Эта команда приостанавливает задание рабочего процесса VersionCheck. Команда использует параметр Wait, чтобы дождаться приостановки задания рабочего процесса. Когда задание рабочего процесса выполняется до следующей контрольной точки и приостановлено, команда завершает работу и возвращает объект задания.
Пример 5. Принудительное приостановка задания рабочего процесса
Suspend-Job Maintenance -Force
Эта команда принудительно приостанавливает задание рабочего процесса обслуживания. Задание обслуживания не имеет контрольных точек. Его невозможно приостановить правильно и может не возобновиться правильно.
Параметры
-Confirm
Запрашивает подтверждение перед запуском cmdlet.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | cf |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Filter
Задает хэш-таблицу условий. Этот командлет приостанавливает задания, удовлетворяющие всем условиям. Введите хеш-таблицу, в которой ключи являются свойствами задания, а значения — значениями свойств задания.
Свойства параметров
| Тип: | Hashtable |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
FilterParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Force
Немедленно приостанавливает задание рабочего процесса. Это действие может привести к потере состояния и данных.
По умолчанию Suspend-Job позволяет заданию рабочего процесса выполняться до следующей контрольной точки, а затем приостановить ее.
Этот параметр также можно использовать для приостановки заданий рабочего процесса, которые не имеют контрольных точек.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Ф |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Id
Указывает идентификаторы заданий, которые этот командлет приостанавливает.
Идентификатор — это целое число, которое однозначно идентифицирует задание в текущем сеансе. Проще помнить и вводить идентификатор экземпляра, но он является уникальным только в текущем сеансе. Можно ввести один или несколько идентификаторов, разделенных запятыми. Чтобы найти идентификатор задания, используйте командлет Get-Job.
Свойства параметров
| Тип: | Int32[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
SessionIdParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-InstanceId
Указывает идентификаторы экземпляров заданий, которые этот командлет приостанавливает. Значение по умолчанию — все задания.
Идентификатор экземпляра — это GUID, который однозначно идентифицирует задание на компьютере. Чтобы найти идентификатор экземпляра задания, используйте Get-Job.
Свойства параметров
| Тип: | Guid[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
InstanceIdParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Job
Указывает задания рабочего процесса, которые останавливает этот командлет. Введите переменную, содержащую задания рабочего процесса или команду, которая получает задания рабочего процесса. Можно также передать задания рабочего процесса в командлет Suspend-Job.
Свойства параметров
| Тип: | Job[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
JobParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Name
Указывает понятные имена заданий, которые этот командлет приостанавливает. Введите одно или несколько имен заданий рабочего процесса. Поддерживаются подстановочные знаки.
Свойства параметров
| Тип: | String[] |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
NameParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-State
Указывает состояние задания. Этот командлет останавливает только задания в указанном состоянии. Допустимые значения для этого параметра:
- Не начато
- Бег
- Завершено
- Неудача
- Остановился
- Заблокировано
- Подвешенный
- Отключен
- Приостановка
- Остановка
Suspend-Job приостанавливает только задания рабочих процессов в состоянии выполнения.
Дополнительные сведения о состояниях заданий см. в перечисления JobState.
Свойства параметров
| Тип: | JobState |
| Default value: | None |
| Допустимые значения: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
StateParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Wait
Указывает, что этот командлет подавляет командную строку до тех пор, пока задание рабочего процесса не находится в приостановленном состоянии. По умолчанию Suspend-Job немедленно возвращается, даже если задание рабочего процесса еще не находится в приостановленном состоянии.
Параметр ожидания эквивалентен отправке команды Suspend-Job командлету Wait-Job.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-WhatIf
Показывает, что произойдет, если командлет будет запущен. Командлет не запускается.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | wi |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
Job
Вы можете передать все типы заданий в этот командлет. Однако если Suspend-Job получает задание неподдерживаемого типа, он возвращает завершающееся сообщение об ошибке.
Выходные данные
Job
Этот командлет возвращает задания, приостановленные.
Примечания
Windows PowerShell включает следующие псевдонимы для Suspend-Job:
sujb
Механизм и расположение для сохранения приостановленного задания может отличаться в зависимости от типа задания. Например, приостановленные задания рабочего процесса сохраняются в неструктурированном хранилище файлов по умолчанию, но также могут быть сохранены в базе данных.
Если вы отправляете задание рабочего процесса, которое не находится в состоянии выполнения, Suspend-Job отображает предупреждение. Чтобы отключить предупреждение, используйте WarningAction общий параметр со значением SilentlyContinue.
Если задание не является типом, поддерживающим приостановку, Suspend-Job возвращает завершающуюся ошибку.
Чтобы найти приостановленные задания рабочего процесса, включая приостановленные этим командлетом, используйте параметр State командлета Get-Job для получения заданий рабочего процесса в состоянии приостановки.
Некоторые типы заданий имеют параметры или свойства, которые не позволяют Windows PowerShell приостановить задание. Если попытка приостановить задание завершается ошибкой, убедитесь, что параметры и свойства задания разрешают приостановку.