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
использует параметр Name для указания задания BatchJob. Объект задания хранится в переменной $batch
. Объект отправляется $batch
вниз по конвейеру Remove-Job
.
Альтернативой является использование параметра 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
использует параметр State для указания состояния задания.
Пример 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
. ScriptBlock используется Start-Job
для запуска удаленного задания. Задание выполняет Get-Process
команду и использует параметр Name для указания понятного имени задания MyJob.
Invoke-Command
$S
использует сеанс и выполняетсяRemove-Job
. Параметр Name указывает, что задание с именем 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
. Параметр Property использует звездочку (*
), чтобы указать, что все свойства объекта отображаются в списке.
Remove-Job
использует параметр InstanceId для указания задания для удаления.
Параметры
-Command
Удаляет задания, в команды которых входят указанные слова. Можно ввести разделенный запятыми массив.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Confirm
Запрашивает подтверждение перед Remove-Job
запуском.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Удаляет задания, удовлетворяющие всем условиям, установленным в связанной хэш-таблице. Введите хэш-таблицу, где ключи являются свойствами заданий, а значения — значениями этих свойств.
Этот параметр работает только с пользовательскими типами заданий, такими как задания рабочих процессов и запланированные задания. Он не работает на стандартных фоновых заданиях, таких как созданные с помощью .Start-Job
Этот параметр впервые появился в PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Force
Удаляет задание, даже если состояние задания выполняется. Если параметр Force не указан, Remove-Job
не удаляет выполняемые задания.
Type: | SwitchParameter |
Aliases: | F |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Удаляет фоновые задания с указанным идентификатором. Можно ввести разделенный запятыми массив. Идентификатор задания — это уникальное целое число, определяющее задание в текущем сеансе.
Чтобы найти идентификатор задания, используйте Get-Job
без параметров.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Удаляет задания с указанным экземпляром. Можно ввести разделенный запятыми массив. InstanceId — это уникальный идентификатор GUID, определяющий задание.
Чтобы найти имя экземпляра задания, используйте Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Указывает задания, которые требуется удалить. Введите переменную, содержащую задания, либо команду, которая их возвращают. Можно ввести разделенный запятыми массив.
Объекты заданий можно отправлять в конвейер Remove-Job
.
Type: | Job[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Удаляет только задания с указанным понятным именем. Разрешено использовать подстановочные знаки. Можно ввести разделенный запятыми массив.
Понятные имена заданий не гарантируются уникальными даже в сеансе PowerShell. Используйте параметры WhatIf и Confirm при удалении файлов по имени.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-State
Удаляет только задания с указанным состоянием. Чтобы удалить задания с состоянием выполнения, используйте параметр Force .
Допустимые значения:
- AtBreakpoint
- Заблокировано
- Завершено
- Отключено
- Неудачно
- NotStarted
- Выполняется
- Остановлено
- Остановка
- Приостановлено
- Приостановка
Type: | JobState |
Accepted values: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при Remove-Job
выполнении. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Объект Job можно передать в этот командлет.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
PowerShell включает следующие псевдонимы для Remove-Job
:
- Все платформы:
rjb
Задание PowerShell создает новый процесс. По завершении задания процесс завершается. При Remove-Job
запуске состояние задания удаляется.
Если задание останавливается до завершения и его процесс не завершается, процесс принудительно завершается.
Связанные ссылки
PowerShell