Останавливает фоновое задание 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.






См. также




Содержание