Remove-Job

Odstraní úlohu PowerShellu na pozadí.

Syntax

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

Description

Rutina Remove-Job odstraní úlohy na pozadí PowerShellu Start-Job , které rutina spustila, nebo rutinami, jako Invoke-Command je například podpora parametru AsJob .

Můžete použít Remove-Job k odstranění všech úloh nebo k odstranění vybraných úloh. Úlohy jsou identifikovány jejich názvem, ID, ID instance, příkazem nebo stavem. Nebo může být objekt úlohy odeslán do kanálu do Remove-Job. Bez parametrů nebo hodnot Remove-Job parametrů nemá žádný vliv.

Vzhledem k tomu, že PowerShell 3.0, Remove-Job může odstranit vlastní typy úloh, jako jsou naplánované úlohy a úlohy pracovního postupu. Například Remove-Job odstraní naplánovanou úlohu, všechny instance naplánované úlohy na disku a výsledky všech aktivovaných instancí úloh.

Pokud se pokusíte odstranit spuštěnou úlohu, Remove-Job selže. Pomocí rutiny Stop-Job zastavte spuštěnou úlohu. Nebo pomocí Remove-Job parametru Force odstraňte spuštěnou úlohu.

Úlohy zůstanou v globální mezipaměti úloh, dokud neodstraníte úlohu na pozadí nebo nezavřete relaci PowerShellu.

Příklady

Příklad 1: Odstranění úlohy pomocí jejího názvu

Tento příklad používá proměnnou a kanál k odstranění úlohy podle názvu.

$batch = Get-Job -Name BatchJob
$batch | Remove-Job

Get-Jobpoužívá parametr Name k určení úlohy BatchJob. Objekt úlohy je uložen v $batch proměnné. Objekt in $batch je odeslán do kanálu do Remove-Job.

Alternativou je použití parametru Job , například Remove-Job -Job $batch.

Příklad 2: Odstranění všech úloh v relaci

V tomto příkladu se odstraní všechny úlohy v aktuální relaci PowerShellu.

Get-job | Remove-Job

Get-Job získá všechny úlohy v aktuální relaci PowerShellu. Objekty úloh se odesílají do kanálu do Remove-Job.

Příklad 3: Odstranění úloh NotStarted

Tento příklad odstraní všechny úlohy z aktuální relace PowerShellu, která nebyla spuštěna.

Remove-Job -State NotStarted

Remove-Job pomocí parametru State určuje stav úlohy.

Příklad 4: Odstranění úloh pomocí popisného názvu

Tento příklad odstraní všechny úlohy z aktuální relace s popisnými názvy, které končí dávkovou*, včetně spuštěných úloh.

Remove-Job -Name *batch -Force

Remove-Jobpoužívá parametr Name k určení vzoru názvu úlohy. Vzor obsahuje zástupný znak hvězdičky (*) pro vyhledání všech názvů úloh, které končí dávkovou. Parametr Force odstraní spuštěné úlohy.

Příklad 5: Odstranění úlohy vytvořené příkazem Invoke-Command

Tento příklad odebere úlohu, která byla spuštěna ve vzdáleném počítači pomocí Invoke-Command parametru AsJob .

Vzhledem k tomu, že v příkladu se používá parametr AsJob , objekt úlohy se vytvoří v místním počítači. Úloha se ale spouští na vzdáleném počítači. Výsledkem je, že ke správě úlohy použijete místní příkazy.

$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job

Invoke-Command spustí úlohu na počítači Se serverem 01 . Parametr AsJob spouští ScriptBlock jako úlohu na pozadí. Objekt úlohy je uložen v $job proměnné. Objekt $job proměnné se odešle do kanálu do Remove-Job.

Příklad 6: Odstranění úlohy vytvořené příkazem Invoke a Start-Job

Tento příklad ukazuje, jak odebrat úlohu na vzdáleném počítači, který byl spuštěn pomocí spuštění Invoke-CommandStart-Job. Objekt úlohy se vytvoří ve vzdáleném počítači a ke správě úlohy se používají vzdálené příkazy. Při spuštění vzdáleného Start-Job příkazu se vyžaduje trvalé připojení.

$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-PSSessionvytvoří psSession, trvalé připojení k počítači Server01. Připojení se uloží do $S proměnné.

Invoke-Command se připojí k relaci uloženou v $Ssouboru . ScriptBlock používá Start-Job ke spuštění vzdálené úlohy. Úloha spustí Get-Process příkaz a pomocí parametru Name určí popisný název úlohy MyJob.

Invoke-Command$S používá relaci a spouští Remove-Job. Parametr Name určuje, že úloha s názvem MyJob je odstraněna.

Příklad 7: Odstranění úlohy pomocí id instance

Tento příklad odebere úlohu na základě id instance.

$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 spustí úlohu na pozadí a objekt úlohy se uloží do $job proměnné.

Objekt in $job je odeslán do kanálu do Format-List. Parametr Property používá hvězdičku (*) k určení, že všechny vlastnosti objektu jsou zobrazeny v seznamu.

Remove-Jobpoužívá parametr InstanceId k určení úlohy, která se má odstranit.

Parametry

-Command

Odstraní úlohy, které obsahují zadaná slova v příkazu. Můžete zadat pole oddělené čárkami.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Před spuštěním se zobrazí výzva k potvrzení Remove-Job .

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Filter

Odstraní úlohy, které splňují všechny podmínky vytvořené v přidružené tabulce hash. Zadejte tabulku hash, kde klíče jsou vlastnosti úlohy a hodnoty jsou hodnoty vlastností úlohy.

Tento parametr funguje jenom u vlastních typů úloh, jako jsou úlohy pracovního postupu a naplánované úlohy. Nefunguje na standardních úlohách na pozadí, například na úlohách vytvořených pomocí nástroje Start-Job.

Tento parametr je zavedený v PowerShellu 3.0.

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Force

Odstraní úlohu, i když je stav úlohy spuštěný. Pokud není zadaný parametr Force, Remove-Job neodstraní spuštěné úlohy.

Type:SwitchParameter
Aliases:F
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Odstraní úlohy na pozadí se zadaným ID. Můžete zadat pole oddělené čárkami. ID úlohy je jedinečné celé číslo, které identifikuje úlohu v rámci aktuální relace.

Pokud chcete najít ID úlohy, použijte Get-Job bez parametrů.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Odstraní úlohy se zadaným ID instance. Můžete zadat pole oddělené čárkami. InstanceId je jedinečný identifikátor GUID, který identifikuje úlohu.

K vyhledání ID instance úlohy použijte Get-Job.

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Job

Určuje úlohy, které se mají odstranit. Zadejte proměnnou, která obsahuje úlohy, nebo příkaz, který získá úlohy. Můžete zadat pole oddělené čárkami.

Do kanálu Remove-Jobmůžete odesílat objekty úloh.

Type:Job[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

Odstraní pouze úlohy se zadaným popisným názvem. Jsou povoleny zástupné cardy. Můžete zadat pole oddělené čárkami.

Popisné názvy úloh nemusí být jedinečné ani v rámci relace PowerShellu. Při odstraňování souborů podle názvu použijte parametry WhatIf a Confirm.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-State

Odstraní pouze úlohy se zadaným stavem. Pokud chcete odstranit úlohy se stavem Spuštěno, použijte parametr Force .

Přijaté hodnoty:

  • AtBreakpoint
  • Blokované
  • Dokončeno
  • Odpojeno
  • Neúspěšný
  • NotStarted
  • Spuštěno
  • Zastaveno
  • Zastavování
  • Dočasně blokován.
  • Pozastavení
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

Ukazuje, co se stane, když Remove-Job se spustí. Rutina se nespustí.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Vstupy

Job

Objekt Úlohy můžete do této rutiny převést.

Výstupy

None

Tato rutina nevrátí žádný výstup.

Poznámky

PowerShell obsahuje následující aliasy pro Remove-Job:

  • Všechny platformy:
    • rjb

Úloha PowerShellu vytvoří nový proces. Po dokončení úlohy se proces ukončí. Po Remove-Job spuštění se stav úlohy odebere.

Pokud se úloha zastaví před dokončením a její proces se neodejde, proces se vynutil ukončení.