Suspend-Job
Временно останавливает задания рабочих процессов.
Синтаксис
Suspend-Job
[-Force]
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Suspend-Job
приостанавливает задания рабочего процесса. Приостановка означает временное прерывание или приостановку задания рабочего процесса. Он позволяет пользователям, выполняющим рабочие процессы, приостанавливать их. Он дополняет действие Suspend-Workflow, которое является командой в рабочемhttps://go.microsoft.com/fwlink/?LinkId=267141 процессе, который приостанавливает рабочий процесс.
Командлет Suspend-Job
работает только в заданиях рабочего процесса. Он не работает на стандартных фоновых заданиях, таких как запущенные с помощью командлета Start-Job
.
Чтобы определить задание рабочего процесса, найдите значение PSWorkflowJob в свойстве PSJobTypeName задания. Чтобы определить, поддерживает Suspend-Job
ли определенный настраиваемый тип задания командлет, см. разделы справки для пользовательского типа задания.
Когда вы приостанавливаете задание рабочего процесса, оно выполняется до следующей контрольной точки, приостанавливается и немедленно возвращает объект задания рабочего процесса. Чтобы дождаться завершения приостановки перед получением задания, используйте параметр Suspend-Job
Wait или 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
Эта команда принудительно приостанавливает задание рабочего процесса Maintenance. Задание обслуживания не имеет контрольных точек. Его невозможно приостановить правильно и может не возобновиться правильно.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Filter
Задает хэш-таблицу условий. Этот командлет приостанавливает задания, удовлетворяющие всем условиям. Введите хэш-таблицу, где ключи являются свойствами заданий, а значения — значениями этих свойств.
Тип: | Hashtable |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Force
Мгновенно приостанавливает задание рабочего процесса. Это действие может привести к потере состояния и данных.
По умолчанию Suspend-Job
задание рабочего процесса запускается до следующей контрольной точки, а затем приостанавливает его.
С помощью этого параметра можно также приостанавливать задания рабочих процессов, у которых нет контрольных точек.
Тип: | 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
- Выполняется
- Завершено
- Неудачно
- Остановлено
- Заблокировано
- Приостановлена
- Отключено
- Приостановка
- Остановка
Suspend-Job
приостанавливает только задания рабочих процессов в состоянии выполнения .
Дополнительные сведения о состояниях заданий см. в разделе "Перечисление JobState".
Тип: | JobState |
Допустимые значения: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Wait
Указывает, что этот командлет подавляет командную строку до тех пор, пока задание рабочего процесса не находится в приостановленном состоянии. По умолчанию возвращается немедленно, Suspend-Job
даже если задание рабочего процесса еще не находится в приостановленном состоянии.
Параметр Wait эквивалентен отправке Suspend-Job
команды командлету Wait-Job
.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать все типы заданий в этот командлет. Однако если Suspend-Job
получает задание неподдерживаемого типа, возвращается завершающая ошибка.
Выходные данные
Этот командлет возвращает задания, приостановленные.
Примечания
Windows PowerShell включает следующие псевдонимы для Suspend-Job
:
sujb
Механизм и место сохранения приостановленного задания могут различаться в зависимости от его типа. Например, по умолчанию приостановленные задания рабочих процессов сохраняются в хранилище неструктурированных файлов, но также могут сохраняться в базе данных.
Если вы отправляете задание рабочего процесса, которое не находится в состоянии выполнения, Suspend-Job
отображает предупреждение. Чтобы отключить предупреждение, используйте общий параметр WarningAction со значением SilentlyContinue.
Если задание не является типом, поддерживающим приостановку, Suspend-Job
возвращает завершающую ошибку.
Чтобы найти приостановленные задания рабочего процесса, включая приостановленные этим командлетом, используйте параметр Get-Job
State командлета для получения заданий рабочего процесса в состоянии приостановки.
Задания некоторых типов имеют параметры или свойства, которые не позволяют среде Windows PowerShell приостанавливать их. Если попытка приостановить задание завершается ошибкой, убедитесь, что параметры и свойства задания разрешают приостановку.
Связанные ссылки
PowerShell