Останавливает фоновое задание Windows PowerShell.
Синтаксис
Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>] Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Описание
Командлет Stop-Job останавливает выполняющиеся фоновые задания Windows PowerShell. Этот командлет можно использовать для остановки всех или выбранных заданий по имени, идентификатору, идентификатору экземпляра или состоянию, либо передав объект задания в командлет Stop-Job.
Командлет Stop-Job можно использовать для остановки заданий, запущенных с использованием командлета Start-Job или параметра AsJob командлета Invoke-Command. Когда пользователь останавливает фоновое задание, Windows PowerShell завершает все задачи, находящиеся в очереди задания, а затем завершает задание. После передачи этой команды новые задачи в очередь больше не добавляются.
Этот командлет не удаляет фоновые задания. Для удаления задания следует использовать командлет Remove-Job.
Параметры
-Id <Int32[]>
Останавливает задания с указанными идентификаторами. По умолчанию используется значение "Все задания в пределах текущего сеанса".
ID — это целое значение, которое однозначно определяет задание в пределах текущего сеанса. Это значение проще запомнить и ввести, чем InstanceId, но оно уникально только в рамках текущего сеанса. Можно ввести один или несколько идентификаторов (разделенных запятыми). Чтобы найти значение идентификатора задания, введите "Get-Job" без параметров.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-InstanceId <Guid[]>
Останавливает задания с указанными идентификаторами экземпляров. По умолчанию возвращаются все задания.
Идентификатор экземпляра — это GUID, который однозначно определяет задание на компьютере. Чтобы найти значение идентификатора экземпляра задания, воспользуйтесь командлетом Get-Job.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Job <Job[]>
Указывает задания, которые требуется остановить. Укажите переменную, содержащую задания, либо введите команду, получающую их. Для передачи заданий в командлет Stop-Job можно также использовать оператор конвейера. По умолчанию командлет Stop-Job удаляет все задания, запущенные в текущем сеансе.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Name <string[]>
Останавливает задания с указанными понятными именами. Введите имена заданий в виде списка разделенных запятыми значений или используйте подстановочный знак (*) для ввода шаблона имени задания. По умолчанию командлет Stop-Job останавливает все задания, созданные в текущем сеансе.
Поскольку понятное имя может быть не уникальным, следует использовать параметры WhatIf или Confirm для остановки заданий по имени.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
true |
-PassThru
Возвращает объект, представляющий новое фоновое задание. По умолчанию этот командлет не формирует никаких выходных данных.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-State <JobState>
Останавливает задания с указанным состоянием. Допустимые значения: "NotStarted", "Running", "Completed", "Stopped", "Failed" и "Blocked".
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Confirm
Запрашивает подтверждение перед выполнением команды.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-WhatIf
Описывает, что произойдет при выполнении команды, без ее фактического выполнения.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Management.Automation.RemotingJob Объект задания можно передать командлету Stop-Job по конвейеру. |
Выходные данные |
None или System.Management.Automation.RemotingJob Если задан параметр PassThru, командлет Stop-Job возвращает объект задания. В противном случае этот командлет не формирует никаких выходных данных. |
Пример 1
C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02 C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}} C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j Описание ----------- В этом примере показано, как использовать командлет Stop-Job для остановки задания, запущенного на удаленном компьютере. Поскольку задание запущено с использованием командлета Invoke-Command для удаленного выполнения команды Start-Job, объект задания сохраняется на удаленном компьютере, и необходимо использовать другую команду Invoke-Command для удаленного выполнения команды Stop-Job. Чтобы получить дополнительные сведения об удаленных фоновых заданиях, см. раздел about_Remote_Jobs. Первая команда создает сеанс Windows PowerShell (PSSession) на компьютере Server01 и сохраняет объект сеанса в переменной $s. Команда использует учетные данные администратора домена. Вторая команда использует командлет Invoke-Command для выполнения команды Start-Job в рамках данного сеанса. Эта команда в данном задании получает все события из журнала системных событий. Конечный объект задания сохраняется в переменной $j. Третья команда останавливает задание. Она использует командлет Invoke-Command для выполнения команды Stop-Job в сеансе PSSession на компьютере Server01. Поскольку объекты задания хранятся в локальной переменной $j, команда использует ключевое слово "param" для объявления локальных переменных в команде и параметр ArgumentList для задания значений переменных. После выполнения команды задание останавливается, а объект PSSession, указанный в переменной $s, становится доступным для использования.
Пример 2
C:\PS>stop-job -state failed Описание ----------- Эта команда останавливает все задания с состоянием "Failed".
Пример 3
C:\PS>stop-job -name job1 Описание ----------- Эта команда останавливает фоновое задание Job1.
Пример 4
C:\PS>stop-job -id 1, 3, 4 Описание ----------- Эта команда останавливает три задания. Задания определяются по идентификаторам.
Пример 5
C:\PS>get-job | stop-job Описание ----------- Эта команда останавливает все фоновые задания в текущем сеансе.
Пример 6
C:\PS>stop-job -state blocked Описание ----------- Эта команда останавливает все задания с состоянием задания "Blocked".
Пример 7
C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I nstanceID -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 C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf Описание ----------- Эти команды останавливают задание, используя его идентификатор экземпляра. Первая команда получает сведения о заданиях в текущем сеансе с использованием командлета Get-Job. Команда передает задания с помощью оператора конвейера (|) в команду Format-Table, которая отображает таблицу указанных свойств для всех заданий. Таблица содержит идентификатор экземпляра для каждого задания. Для отображения состояния задания используется вычисляемое свойство. Вторая команда использует командлет Stop-Job с параметром InstanceID для остановки выбранного задания.
Пример 8
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob C:\PS> $j | stop-job -passthru Id Name State HasMoreData Location Command -- ---- ---- ----------- -------- ------- 5 Job5 Stopped True judithh-tablet get-eventlog system Описание ----------- В этом примере показано, как использовать командлет Stop-Job для остановки задания, запущенного на удаленном компьютере. Поскольку задание было запущено с использованием параметра AsJob командлета Invoke-Command, объект находится на локальном компьютере, даже если само задание выполняется на удаленном компьютере. Поэтому для остановки задания можно использовать локальную команду Stop-Job. Первая команда запускает фоновое задание на компьютере Server01 с использованием командлета Invoke-Command. В команде используется параметр AsJob для выполнения удаленной команды в виде фонового задания. Эта команда возвращает тот же самый объект задания, который возвращает командлет Start-Job. Команда сохраняет объект задания в переменной $j. Вторая команда передает задание, содержащееся в переменной $j, командлету Stop-Job с помощью оператора конвейера. Команда использует параметр PassThru, который означает, что командлет Stop-Job должен возвратить объект задания. Отображаемый объект задания подтверждает, что задание имеет состояние "Stopped". Чтобы получить дополнительные сведения об удаленных фоновых заданиях, см. раздел about_Remote_Jobs.
См. также