Stop-Job
Останавливает фоновое задание PowerShell.
Синтаксис
Stop-Job
[-PassThru]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Stop-Job
останавливает фоновые задания PowerShell, которые выполняются. Этот командлет можно использовать для остановки всех заданий или остановки выбранных заданий на основе их имени, идентификатора, идентификатора экземпляра или состояния или передачи объекта Stop-Job
задания в .
Можно использовать Stop-Job
для остановки фоновых заданий, таких как запущенные с помощью Start-Job
командлета или параметра 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
Эти команды показывают, как остановить задание на основе идентификатора экземпляра.
Первая команда использует Get-Job
командлет для получения заданий в текущем сеансе. Команда использует оператор конвейера (|
) для отправки заданий Format-Table
в команду, которая отображает таблицу указанных свойств каждого задания. Таблица содержит Идентификатор экземпляра каждого задания. Для отображения состояния задания используется вычисляемое свойство.
Вторая команда использует команду с параметром Stop-Job
InstanceID , чтобы остановить выбранное задание.
Пример 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
командлет для остановки задания, выполняемого на удаленном компьютере.
Так как задание было запущено с параметром Invoke-Command
AsJob командлета, объект Job находится на локальном компьютере, даже если задание выполняется на удаленном компьютере. Поэтому для остановки задания можно использовать локальную Stop-Job
команду.
Первая команда использует Invoke-Command
командлет для запуска фонового задания на компьютере Server01. Команда использует параметр AsJob для выполнения удаленной команды в качестве фонового задания.
Эта команда возвращает объект задания, который является тем же объектом задания, что Start-Job
и командлет.
Команда сохраняет объект задания в переменной $j
.
Вторая команда использует оператор конвейера для отправки $j
задания в переменную Stop-Job
. Команда использует параметр PassThru для прямого Stop-Job
возврата объекта задания. Отображение объекта задания подтверждает, что состояние задания остановлено.
Дополнительные сведения о удаленных фоновых заданиях см. в about_Remote_Jobs.
Параметры
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Filter
Задает хэш-таблицу условий. Этот командлет останавливает задания, удовлетворяющие каждому условию. Введите хэш-таблицу, где ключи являются свойствами заданий, а значения — значениями этих свойств.
Этот параметр работает только в пользовательских типах заданий, таких как WorkflowJobs и ScheduledJobs. Он не работает на стандартных фоновых заданиях, таких как созданные с помощью командлета Start-Job
.
Дополнительные сведения о поддержке данного параметра см. в разделе справки о соответствующем типе заданий.
Этот параметр впервые появился в Windows PowerShell 3.0.
Тип: | Hashtable |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Id
Указывает идентификаторы заданий, которые останавливает этот командлет. По умолчанию останавливаются все задания в текущем сеансе.
Идентификатор — это целое число, которое однозначно идентифицирует задание в текущем сеансе. Проще запоминать и вводить идентификатор экземпляра, но он является уникальным только в текущем сеансе. Можно ввести один или несколько идентификаторов, разделенных запятыми. Чтобы найти идентификатор задания, введите Get-Job
.
Тип: | Int32[] |
Position: | 0 |
Default value: | All jobs |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-InstanceId
Указывает идентификаторы экземпляров заданий, которые останавливает этот командлет. По умолчанию останавливаются все задания.
Идентификатор экземпляра — это GUID, который однозначно определяет задание на компьютере. Чтобы найти идентификатор экземпляра задания, используйте Get-Job
.
Тип: | Guid[] |
Position: | 0 |
Default value: | All jobs |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Job
Указывает задания, которые останавливает этот командлет. Введите переменную, содержащую задания, либо команду, которая их возвращают. Можно также использовать оператор конвейера для отправки заданий командлету Stop-Job
. По умолчанию Stop-Job
удаляет все задания, запущенные в текущем сеансе.
Тип: | Job[] |
Position: | 0 |
Default value: | All jobs |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Указывает понятные имена заданий, которые останавливает этот командлет. Введите имена заданий в разделенном запятыми списке или используйте подстановочные знаки (*
) для ввода шаблона имени задания. По умолчанию останавливает все задания, Stop-Job
созданные в текущем сеансе.
Так как понятное имя не гарантируется уникальным, используйте параметры WhatIf и Confirm при остановке заданий по имени.
Тип: | String[] |
Position: | 0 |
Default value: | All jobs |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-PassThru
Возвращает объект, представляющий элемент, с которым вы работаете. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-State
Указывает состояние задания. Этот командлет останавливает только задания в указанном состоянии. Допустимые значения для этого параметра:
NotStarted
Running
Completed
Failed
Stopped
Blocked
Suspended
Disconnected
Suspending
Stopping
Дополнительные сведения о состояниях заданий см. в разделе "Перечисление JobState".
Тип: | JobState |
Допустимые значения: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | All jobs |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
System.Management.Automation.RemotingJob
Объект задания можно передать в этот командлет.
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
System.Management.Automation.PSRemotingJob
При использовании параметра PassThru этот командлет возвращает объект задания.
Примечания
Windows PowerShell включает следующие псевдонимы для Stop-Job
:
spjb
Связанные ссылки
PowerShell