Stop-Job
Останавливает фоновое задание PowerShell.
Синтаксис
SessionIdParameterSet (по умолчанию)
Stop-Job
[-Id] <Int32[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Stop-Job
[-Name] <String[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Stop-Job
[-InstanceId] <Guid[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Stop-Job
[-State] <JobState>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Stop-Job
[-Filter] <Hashtable>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Stop-Job останавливает фоновые задания PowerShell, которые выполняются. Этот командлет можно использовать для остановки всех заданий или остановки выбранных заданий на основе их имени, идентификатора, идентификатора экземпляра или состояния или передачи объекта задания в Stop-Job.
Вы можете использовать Stop-Job для остановки фоновых заданий, таких как запущенные с помощью командлета Start-Job или параметра asJob asJob любого командлета. При остановке фонового задания PowerShell завершает все задачи, ожидающие в этой очереди заданий, а затем завершает задание. После отправки этой команды новые задачи не добавляются в очередь.
Этот командлет не удаляет фоновые задания. Чтобы удалить задание, используйте командлет Remove-Job.
Начиная с Windows PowerShell 3.0, Stop-Job также останавливает пользовательские типы заданий, например рабочих заданий и экземпляры ScheduledJobs. Чтобы разрешить Stop-Job остановить задание с пользовательским типом задания, импортируйте модуль, поддерживающий настраиваемый тип задания в сеанс перед выполнением команды Stop-Job, с помощью командлета Import-Module или с помощью или получения командлета в модуле. Сведения о конкретном пользовательском типе задания см. в документации по функции пользовательского типа задания.
Примеры
Пример 1. Остановка задания на удаленном компьютере с помощью Invoke-Command
$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $s -ScriptBlock { Stop-Job -Job $Using:j }
В этом примере показано, как использовать командлет Stop-Job для остановки задания, выполняемого на удаленном компьютере.
Так как задание было запущено с командлетом Invoke-Command для удаленного выполнения команды Start-Job, объект задания хранится на удаленном компьютере. Для удаленного выполнения команды Invoke-Command необходимо использовать другую команду Stop-Job. Дополнительные сведения о удаленных фоновых заданиях см. в about_Remote_Jobs.
Первая команда создает сеанс PowerShell (PSSession) на компьютере Server01, а затем сохраняет объект сеанса в переменной $s. Команда использует учетные данные администратора домена.
Вторая команда использует командлет Invoke-Command для выполнения команды Start-Job в сеансе. Команда в задании получает все события в журнале событий системы. Результирующий объект задания хранится в переменной $j.
Третья команда останавливает задание. Он использует командлет Invoke-Command для выполнения команды Stop-Job в PSSession на сервере Server01. Так как объекты заданий хранятся в $j, которая является переменной на локальном компьютере, команда использует модификатор области Using: для идентификации $j в качестве локальной переменной. Дополнительные сведения о модификаторе Using: области см. в about_Remote_Variables.
По завершении команды задание остановлено, а PSSession в $s доступно для использования.
Пример 2. Остановка фонового задания
Stop-Job -Name "Job1"
Эта команда останавливает фоновое задание Job1.
Пример 3. Остановка нескольких фоновых заданий
Stop-Job -Id 1, 3, 4
Эта команда останавливает три задания. Он определяет их идентификаторами .
Пример 4. Остановка всех фоновых заданий
Get-Job | Stop-Job
Эта команда останавливает все фоновые задания в текущем сеансе.
Пример 5. Остановка всех заблокированных фоновых заданий
Stop-Job -State Blocked
Эта команда останавливает все заблокированные задания.
Пример 6. Остановка задания по идентификатору экземпляра
Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceId -Auto
Id Name Command State InstanceId
-- ---- ------- ----- ----------
1 Job1 Start-Service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 Start-Service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 Get-Service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf
Эти команды показывают, как остановить задание на основе InstanceId.
Первая команда использует командлет Get-Job для получения заданий в текущем сеансе. Команда использует оператор конвейера (|) для отправки заданий в команду Format-Table, которая отображает таблицу указанных свойств каждого задания. Таблица содержит InstanceId каждого задания. Он использует вычисляемое свойство для отображения состояния задания.
Вторая команда использует команду Stop-Job с параметром экземпляра, чтобы остановить выбранное задание.
Пример 7. Остановка задания на удаленном компьютере
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet Get-EventLog -LogName Sy...
В этом примере показано, как использовать командлет Stop-Job для остановки задания, выполняемого на удаленном компьютере.
Так как задание было запущено с параметром AsJob командлета Invoke-Command, объект job находится на локальном компьютере, даже если задание выполняется на удаленном компьютере. Поэтому для остановки задания можно использовать локальную команду Stop-Job.
Первая команда использует командлет Invoke-Command для запуска фонового задания на компьютере Server01. Команда использует параметр AsJob для выполнения удаленной команды в качестве фонового задания.
Эта команда возвращает объект задания, который является тем же объектом задания, что возвращает командлет Start-Job.
Команда сохраняет объект задания в переменной $j.
Вторая команда использует оператор конвейера для отправки задания в переменную $j в Stop-Job. Команда использует параметр PassThru для прямого Stop-Job для возврата объекта задания. Отображение объекта задания подтверждает, что состояние задания остановлено.
Дополнительные сведения о удаленных фоновых заданиях см. в about_Remote_Jobs.
Параметры
-Confirm
Запрашивает подтверждение перед запуском cmdlet.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | cf |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Filter
Задает хэш-таблицу условий. Этот командлет останавливает задания, удовлетворяющие каждому условию. Введите хеш-таблицу, в которой ключи являются свойствами задания, а значения — значениями свойств задания.
Этот параметр работает только для пользовательских типов заданий, таких как WorkflowJobs и ScheduledJobs. Он не работает на стандартных фоновых заданиях, таких как созданные с помощью командлета Start-Job.
Сведения о поддержке этого параметра см. в разделе справки для типа задания.
Этот параметр появился в Windows PowerShell 3.0.
Свойства параметра
| Тип: | Hashtable |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
FilterParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Id
Указывает идентификаторы заданий, которые останавливает этот командлет. По умолчанию все задания в текущем сеансе.
Идентификатор — это целое число, которое однозначно идентифицирует задание в текущем сеансе. Запоминать и вводить его проще, чем идентификатор экземпляра, но он уникален только в текущем сеансе. Можно ввести один или несколько идентификаторов, разделенных запятыми. Чтобы найти идентификатор задания, введите Get-Job.
Свойства параметра
| Тип: | Int32[] |
| Default value: | All jobs |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
SessionIdParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-InstanceId
Указывает идентификаторы экземпляров заданий, которые останавливает этот командлет. Значение по умолчанию — все задания.
Идентификатор экземпляра — это GUID, который однозначно идентифицирует задание на компьютере. Чтобы найти идентификатор экземпляра задания, используйте Get-Job.
Свойства параметра
| Тип: | Guid[] |
| Default value: | All jobs |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
InstanceIdParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Job
Указывает задания, которые останавливает этот командлет. Введите переменную, содержащую задания или команду, которая получает задания. Можно также использовать оператор конвейера для отправки заданий в командлет Stop-Job. По умолчанию Stop-Job удаляет все задания, запущенные в текущем сеансе.
Свойства параметра
| Тип: | Job[] |
| Default value: | All jobs |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
JobParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Name
Указывает понятные имена заданий, которые останавливает этот командлет. Введите имена заданий в разделенном запятыми списке или используйте подстановочные знаки (*) для ввода шаблона имени задания. По умолчанию Stop-Job останавливает все задания, созданные в текущем сеансе.
Так как понятное имя не гарантируется уникальным, используйте WhatIf и подтвердить параметры при остановке заданий по имени.
Свойства параметра
| Тип: | String[] |
| Default value: | All jobs |
| Поддерживаются подстановочные знаки: | True |
| DontShow: | False |
Наборы параметров
NameParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-PassThru
Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не создает выходные данные.
Свойства параметра
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-State
Указывает состояние задания. Этот командлет останавливает только задания в указанном состоянии. Допустимые значения для этого параметра:
NotStartedRunningCompletedFailedStoppedBlockedSuspendedDisconnectedSuspendingStopping
Дополнительные сведения о состояниях заданий см. в перечисления JobState.
Свойства параметра
| Тип: | JobState |
| Default value: | All jobs |
| Допустимые значения: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
StateParameterSet
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | 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.
Входные данные
System.Management.Automation.RemotingJob
Объект задания можно передать в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
System.Management.Automation.PSRemotingJob
При использовании параметра PassThru этот командлет возвращает объект задания.
Примечания
PowerShell включает следующие псевдонимы для Stop-Job:
- Все платформы:
spjb