Remove-Job
Удаляет фоновое задание PowerShell.
Синтаксис
Remove-Job
[-Force]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Remove-Job
удаляет фоновые задания PowerShell, которые были запущены командлетом Start-Job
или командлетами, такими как Invoke-Command
, которые поддерживают параметр AsJob.
Вы можете использовать Remove-Job
для удаления всех заданий или удаления выбранных заданий. Задания определяются именем , идентификатором , идентификатором экземпляра , командой или состоянием . Или объект задания можно отправить по конвейеру в Remove-Job
. Без параметров или значений параметров Remove-Job
не действует.
С PowerShell 3.0, Remove-Job
может удалять пользовательские типы заданий, такие как запланированные задания и задания рабочего процесса. Например, Remove-Job
удаляет запланированное задание, все экземпляры запланированного задания на диске и результаты всех запущенных экземпляров заданий.
Если вы пытаетесь удалить выполняемое задание, в Remove-Job
происходит сбой. Используйте командлет Stop-Job
, чтобы остановить выполнение задания. Или используйте Remove-Job
с параметром Force, чтобы удалить выполняемое задание.
Задания остаются в глобальном кэше заданий, пока не удалите фоновое задание или закройте сеанс PowerShell.
Примеры
Пример 1. Удаление задания с помощью его имени
В этом примере используется переменная и конвейер для удаления задания по имени.
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Job
использует параметр имени для указания задания BatchJob. Объект задания хранится в переменной $batch
. Объект в $batch
отправляется по конвейеру в Remove-Job
.
Альтернативой является использование параметра задания , например Remove-Job -Job $batch
.
Пример 2. Удаление всех заданий в сеансе
В этом примере удаляются все задания в текущем сеансе PowerShell.
Get-Job | Remove-Job
Get-Job
получает все задания в текущем сеансе PowerShell. Объекты задания отправляются по конвейеру в Remove-Job
.
Пример 3. Удаление заданий NotStarted
В этом примере удаляются все задания из текущего сеанса PowerShell, который не запущен.
Remove-Job -State NotStarted
Remove-Job
использует параметр состояния для указания состояния задания.
Пример 4. Удаление заданий с помощью удобного имени
В этом примере удаляются все задания из текущего сеанса с дружественными именами, которые заканчиваются на пакетом, включая задания, которые выполняются.
Remove-Job -Name *batch -Force
Remove-Job
использует параметр Name для указания шаблона имени задания. Шаблон включает подстановочный знак звездочки (*
) для поиска всех имен заданий, заканчивающихся пакетной. Параметр Force удаляет задания, которые выполняются.
Пример 5. Удаление задания, созданного Invoke-Command
В этом примере удаляется задание, запущенное на удаленном компьютере с помощью Invoke-Command
с параметром AsJob.
Так как в примере используется параметр AsJob, объект задания создается на локальном компьютере. Но задание выполняется на удаленном компьютере. В результате для управления заданием используются локальные команды.
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Command
выполняет задание на компьютере Server01. Параметр AsJob запускает ScriptBlock в качестве фонового задания. Объект задания хранится в переменной $job
. Объект переменной $job
отправляется по конвейеру в Remove-Job
.
Пример 6. Удаление задания, созданного Invoke-Command и Start-Job
В этом примере показано, как удалить задание на удаленном компьютере, запущенном с помощью Invoke-Command
для запуска Start-Job
. Объект задания создается на удаленном компьютере, и используются удаленные команды для управления заданием. Постоянное подключение требуется при выполнении удаленной команды Start-Job
.
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}
New-PSSession
создает PSSession( постоянное подключение) к компьютеру Server01. Подключение сохраняется в переменной $S
.
Invoke-Command
подключается к сеансу, сохраненном в $S
. Скриптовый блок использует Start-Job
для запуска удаленной задачи. Задание выполняет команду Get-Process
и использует параметр Name для указания понятного имени задания MyJob.
Invoke-Command
использует сеанс $S
и запускает Remove-Job
. Параметр имя указывает, что задание под названием MyJob будет удалено.
Пример 7. Удаление задания с помощью идентификатора экземпляра
В этом примере задание удаляется на основе экземпляра с идентификатором.
$job = Start-Job -ScriptBlock {Get-Process PowerShell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-Process PowerShell
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : ad02b942-8007-4407-87f3-d23e71955872
Id : 3
Name : Job3
ChildJobs : {Job4}
PSBeginTime : 7/26/2019 11:36:56
PSEndTime : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
Start-Job
запускает фоновое задание, а объект задания сохраняется в переменной $job
.
Объект в $job
отправляется по конвейеру в Format-List
. Параметр свойства использует звездочку (*
) для указания того, что все свойства объекта отображаются в списке.
Remove-Job
использует параметр InstanceId из экземпляра, чтобы указать задание для удаления.
Параметры
-Command
Удаляет задания, содержащие указанные слова в команде. Можно ввести разделенный запятыми массив.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Confirm
Запрашивает подтверждение перед запуском Remove-Job
.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Filter
Удаляет задания, удовлетворяющие всем условиям, установленным в связанной хэш-таблице. Введите хэш-таблицу, где ключи являются свойствами задания, а значения - это значения этих свойств.
Этот параметр работает только в пользовательских типах заданий, таких как задания рабочего процесса и запланированные задания. Он не работает на стандартных фоновых заданиях, таких как созданные с помощью Start-Job
.
Этот параметр представлен в PowerShell 3.0.
Тип: | Hashtable |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Force
Удаляет задание, даже если состояние задания выполняется. Если параметр не указан, Remove-Job
не удаляет выполняемые задания.
Тип: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Id
Удаляет фоновые задания с указанным идентификатором. Можно ввести разделенный запятыми массив. Идентификатор задания — это уникальное целое число, идентифицирующее задание в текущем сеансе.
Чтобы найти идентификатор задания, используйте Get-Job
без параметров.
Тип: | Int32[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-InstanceId
Удаляет задачи с указанным InstanceId. Можно ввести разделенный запятыми массив. Идентификатор экземпляра — это уникальный GUID, определяющий задание.
Чтобы найти идентификатор задачи , используйте Get-Job
.
Тип: | Guid[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Job
Указывает задания, которые нужно удалить. Введите переменную, содержащую задания или команду, которая получает задания. Можно ввести разделенный запятыми массив.
Объекты заданий можно отправлять по конвейеру в Remove-Job
.
Тип: | Job[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Name
Удаляет только задания с указанным дружественным именем. Разрешены подстановочные знаки. Можно ввести разделенный запятыми массив.
Дружественные имена для заданий не гарантируется, что будут уникальными, даже в сеансе PowerShell. Используйте WhatIf и подтвердить параметры при удалении файлов по имени.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-State
Удаляет только задания с указанным состоянием. Чтобы удалить задания в состоянии 'запущено', используйте параметр Force.
Принятые значения:
- AtBreakpoint
- Блокированный
- Завершено
- Отключен
- Неудача
- Не начато
- Бег
- Остановлено
- Остановка
- Подвешенный
- Приостановка
Тип: | JobState |
Допустимые значения: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет, если Remove-Job
будет запущен. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Вы можете передать объект задания в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
PowerShell включает следующие псевдонимы для Remove-Job
:
- Все платформы:
rjb
Задание PowerShell создает новый процесс. По завершении задания процесс завершается. При запуске Remove-Job
состояние задания удаляется.
Если задание останавливается до завершения и его процесс не завершается, процесс принудительно завершается.
Связанные ссылки
PowerShell