Поделиться через


Remove-Job

Удаляет фоновое задание PowerShell.

Синтаксис

SessionIdParameterSet (по умолчанию)

Remove-Job
    [-Id] <Int32[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Remove-Job
    [-Job] <Job[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Remove-Job
    [-Name] <String[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Remove-Job
    [-InstanceId] <Guid[]>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FilterParameterSet

Remove-Job
    [-Filter] <Hashtable>
    [-Force]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Remove-Job
    [-State] <JobState>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

CommandParameterSet

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[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

CommandParameterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Confirm

Запрашивает подтверждение перед запуском Remove-Job.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Filter

Удаляет задания, удовлетворяющие всем условиям, установленным в связанной хэш-таблице. Введите хеш-таблицу, в которой ключи являются свойствами задания, а значения — значениями свойств задания.

Этот параметр работает только в пользовательских типах заданий, таких как задания рабочего процесса и запланированные задания. Он не работает на стандартных фоновых заданиях, таких как созданные с помощью Start-Job.

Этот параметр представлен в PowerShell 3.0.

Свойства параметра

Тип:Hashtable
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

FilterParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Force

Удаляет задание, даже если состояние задания выполняется. Если параметр не указан, Remove-Job не удаляет выполняемые задания.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:Ф

Наборы параметров

SessionIdParameterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
JobParameterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
InstanceIdParameterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
NameParameterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False
FilterParameterSet
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Id

Удаляет фоновые задания с указанным идентификатором. Можно ввести разделенный запятыми массив. Идентификатор задания — это уникальное целое число, идентифицирующее задание в текущем сеансе.

Чтобы найти идентификатор задания, используйте Get-Job без параметров.

Свойства параметра

Тип:

Int32[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SessionIdParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-InstanceId

Удаляет задачи с указанным InstanceId. Можно ввести разделенный запятыми массив. Идентификатор экземпляра — это уникальный GUID, определяющий задание.

Чтобы найти идентификатор задачи , используйте Get-Job.

Свойства параметра

Тип:

Guid[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

InstanceIdParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Job

Указывает задания, которые нужно удалить. Введите переменную, содержащую задания или команду, которая получает задания. Можно ввести разделенный запятыми массив.

Объекты заданий можно отправлять по конвейеру в Remove-Job.

Свойства параметра

Тип:

Job[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

JobParameterSet
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Name

Удаляет только задания с указанным дружественным именем. Подстановочные символы разрешены. Можно ввести разделенный запятыми массив.

Дружественные имена для заданий не гарантируется, что будут уникальными, даже в сеансе PowerShell. Используйте WhatIf и подтвердить параметры при удалении файлов по имени.

Свойства параметра

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

NameParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-State

Удаляет только задания с указанным состоянием. Чтобы удалить задания в состоянии 'запущено', используйте параметр Force.

Принятые значения:

  • AtBreakpoint
  • Заблокировано
  • Завершено
  • Отключен
  • Неудача
  • Не начато
  • Бег
  • Остановился
  • Остановка
  • Подвешенный
  • Приостановка

Свойства параметра

Тип:JobState
Default value:None
Допустимые значения:AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

StateParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-WhatIf

Показывает, что произойдет, если Remove-Job будет запущен. Командлет не выполняется.

Свойства параметра

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

Входные данные

Job

Вы можете передать объект задания в этот командлет.

Выходные данные

None

Этот командлет не возвращает выходные данные.

Примечания

PowerShell включает следующие псевдонимы для Remove-Job:

  • Все платформы:
    • rjb

Задание PowerShell создает новый процесс. По завершении задания процесс завершается. При запуске Remove-Job состояние задания удаляется.

Если задание останавливается до завершения и его процесс не завершается, процесс принудительно завершается.