Удаляет фоновое задание Windows PowerShell.
Синтаксис
Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>] Remove-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-Confirm] [-WhatIf] [<CommonParameters>]
Описание
Командлет Remove-Job удаляет фоновые задания Windows PowerShell, которые были запущены с использованием командлета Start-Job или параметра AsJob любого командлета.
Этот командлет можно использовать для удаления всех или выбранных заданий по имени, идентификатору, идентификатору экземпляра, команде или состоянию, либо передав объект задания командлету Remove-Job. Если команда Remove-Job вводится без параметров или значений параметров, она не оказывает никакого действия.
Перед удалением выполняемого задания остановите его с помощью командлета Stop-Job. Попытка удалить выполняемое задание приведет к завершению команды с ошибкой. Для удаления выполняемого задания используется параметр Force команды Remove-Job.
Если не удалить фоновое задание, оно останется в глобальном кэше заданий до тех пор, пока не будет закрыт сеанс, в рамках которого было создано задание.
Параметры
-Command <string[]>
Удаляет задания, в команды которых входят заданные слова.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Force
Удаляет задание, даже если его состояние имеет значение "Running". Без указания параметра Force команда Remove-Job не удалит выполняемое задание.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Id <Int32[]>
Удаляет фоновые задания с указанными идентификаторами.
ID — это целое значение, которое однозначно определяет задание в пределах текущего сеанса. Это значение проще запомнить и ввести, чем идентификатор экземпляра, но оно уникально только в рамках текущего сеанса. Можно ввести один или несколько идентификаторов (разделенных запятыми). Чтобы найти значение идентификатора задания, введите "Get-Job" без параметров.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-InstanceId <Guid[]>
Удаляет задания с указанными идентификаторами экземпляров.
Идентификатор экземпляра — это GUID, который однозначно определяет задание на компьютере. Чтобы определить идентификатор экземпляра задания, используйте командлет Get-Job или выведите сведения об объекте задания.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Job <Job[]>
Указывает задания, которые требуется удалить. Укажите переменную, содержащую задания, либо введите команду, получающую их. Для передачи заданий командлету Remove-Job можно также использовать оператор конвейера.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue, ByPropertyName) |
Принимать подстановочные знаки? |
false |
-Name <string[]>
Удаляет только задания с указанными понятными именами. Подстановочные знаки разрешены.
Поскольку понятное имя может быть не уникальным даже в рамках сеанса, при удалении заданий по имени следует использовать параметры WhatIf и Confirm.
Обязательно? |
false |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByPropertyName) |
Принимать подстановочные знаки? |
true |
-State <JobState>
Удаляет только задания с указанным состоянием. Допустимые значения: "NotStarted", "Running", "Completed", "Stopped", "Failed" и "Blocked". Для удаления заданий с состоянием "Running" используйте параметр Force.
Обязательно? |
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.Job Объект задания можно передать командлету Remove-Job по конвейеру. |
Выходные данные |
Нет Этот командлет не формирует никаких выходных данных. |
Пример 1
C:\PS>$batch = get-job -name BatchJob C:\PS> $batch | remove-job Описание ----------- Эти команды удаляют фоновое задание BatchJob из текущего сеанса. Первая команда использует командлет Get-Job для получения объекта, представляющего задание, а затем сохраняет задание в переменной $batch. Вторая команда передает задание в командлет Remove-Job с помощью оператора конвейера (|). Эта команда эквивалентна использованию параметра Job командлета Remove-Job, например "remove-job -job $batch".
Пример 2
C:\PS>get-job | remove-job Описание ----------- Эта команда удаляет все задания в текущем сеансе.
Пример 3
C:\PS>remove-job -state NotStarted Описание ----------- Эта команда удаляет в текущем сеансе все задания, которые еще не были запущены.
Пример 4
C:\PS>remove-job -name *batch -force Описание ----------- Эта команда удаляет в текущем сеансе все задания, понятные имена которых заканчиваются на "batch", в том числе выполняемые задания. Параметр Name командлета Remove-Job используется для указания шаблона имени задания, а параметр Force — для обеспечения удаления всех заданий, включая задания, которые могут выполняться в данный момент.
Пример 5
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob C:\PS> $j | remove-job Описание ----------- В этом примере показано, как использовать командлет Remove-Job для удаления задания, запущенного на удаленном компьютере с использованием параметра AsJob командлета Invoke-Command. Первая команда использует командлет Invoke-Command для запуска задания на компьютере Server01. Параметр AsJob используется для запуска команды в виде фонового задания. Полученный объект задания сохраняется в переменной $j. Поскольку в команде используется параметр AsJob, объект задания создается на локальном компьютере, даже если само задание выполняется на удаленном компьютере. Поэтому для управления заданием можно использовать локальные команды. Вторая команда удаляет задание с помощью командлета Remove-Job. Для передачи задания, сохраненного в переменной $j, в командлет Remove-Job используется оператор конвейера (|). Обратите внимание, что это локальная команда. Для удаления задания, запущенного на удаленном компьютере с использованием параметра AsJob, удаленная команда не требуется.
Пример 6
C:\PS>$s = new-pssession -computername Server01 C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get-process} -name MyJob} C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob} Описание ----------- В этом примере показано, как удалить задание, запущенное с использованием командлета Invoke-Command для выполнения команды Start-Job. В этом случае объект задания создается на удаленном компьютере, а для управления заданием используются удаленные команды. Первая команда создает сеанс PSSession (постоянное подключение) для компьютера Server01 с использованием командлета New-PSSession. Постоянное подключение необходимо для удаленного выполнения команды Start-Job. Команда сохраняет сеанс PSSession в переменной $s. Вторая команда использует командлет Invoke-Command для выполнения команды Start-Job в сеансе PSSession, указанном в переменной $s. Задание запускает команду Get-Process. Параметр Name командлета Start-Job используется для задания понятного имени нового задания. Третья команда использует командлет Invoke-Command для выполнения команды Remove-Job в сеансе PSSession, указанном в переменной $s. Команда использует параметр Name командлета Remove-Job для указания удаляемого задания.
Пример 7
C:\PS>$j = start-job -script {get-process powershell} C:\PS> $j | format-list -property * C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed C:\PS> $j = start-job -script {get-process powershell} C:\PS> $j | format-list -property * HasMoreData : False StatusMessage : Location : localhost Command : get-process powershell JobStateInfo : Failed Finished : System.Threading.ManualResetEvent InstanceId : dce2ee73-f8c9-483e-bdd7-a549d8687eed Id : 1 Name : Job1 ChildJobs : {Job2} Output : {} Error : {} Progress : {} Verbose : {} Debug : {} Warning : {} StateChanged : C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed Описание ----------- В этом примере показано, как удалить задание, используя его идентификатор экземпляра. Первая команда использует командлет Start-Job для запуска фонового задания. Полученный объект задания сохраняется в переменной $j. Вторая команда передает объект задания, указанный в переменной $j, в команду Format-List с помощью оператора конвейера (|). Команда Format-List использует параметр Property со значением * (все) для отображения всех свойств объекта задания в списке. Для объекта задания отображаются значения свойств ID и InstanceID, а также других свойств объекта. Третья команда использует команду Remove-Job для удаления задания в текущем сеансе. Чтобы создать команду, можно скопировать значение InstanceID из отображения объекта и вставить его. Чтобы скопировать значение в консоли Windows PowerShell, выделите его мышью и нажмите клавишу ВВОД. Чтобы вставить значение, щелкните правой кнопкой мыши.
См. также