Sdílet prostřednictvím


Stop-Job

Zastaví úlohu PowerShellu na pozadí.

Syntax

SessionIdParameterSet (Výchozí)

Stop-Job
    [-Id] <Int32[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Stop-Job
    [-Job] <Job[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Stop-Job
    [-Name] <String[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Stop-Job
    [-InstanceId] <Guid[]>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Stop-Job
    [-State] <JobState>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FilterParameterSet

Stop-Job
    [-Filter] <Hashtable>
    [-PassThru]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Rutina Stop-Job zastaví probíhající úlohy PowerShellu na pozadí. Pomocí této rutiny můžete zastavit všechny úlohy nebo zastavit vybrané úlohy na základě jejich názvu, ID, ID instance nebo stavu nebo předáním objektu úlohy do Stop-Job.

Pomocí Stop-Job můžete zastavit úlohy na pozadí, například úlohy, které byly spuštěny pomocí rutiny Start-Job nebo AsJob parametru jakékoli rutiny. Když zastavíte úlohu na pozadí, PowerShell dokončí všechny úkoly čekající ve frontě úlohy a pak úlohu ukončí. Po odeslání tohoto příkazu se do fronty nepřidají žádné nové úkoly.

Tato rutina neodstraní úlohy na pozadí. Pokud chcete odstranit úlohu, použijte rutinu Remove-Job.

Počínaje Windows PowerShellem 3.0 Stop-Job také zastaví vlastní typy úloh, například WorkflowJobs a instance ScheduledJobs. Pokud chcete povolit Stop-Job zastavit úlohu s vlastním typem úlohy, naimportujte modul, který podporuje vlastní typ úlohy, do relace před spuštěním příkazu Stop-Job, buď pomocí rutiny Import-Module, nebo pomocí rutiny nebo získáním rutiny v modulu. Informace o konkrétním vlastním typu úlohy najdete v dokumentaci funkce vlastního typu úlohy.

Příklady

Příklad 1: Zastavení úlohy na vzdáleném počítači s Invoke-Command

$s = New-PSSession -ComputerName Server01 -Credential Domain01\Admin02
$j = Invoke-Command -Session $s -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $s -ScriptBlock { Stop-job -Job $Using:j }

Tento příklad ukazuje, jak pomocí rutiny Stop-Job zastavit úlohu spuštěnou na vzdáleném počítači.

Vzhledem k tomu, že úloha byla spuštěna pomocí rutiny Invoke-Command ke vzdálenému spuštění příkazu Start-Job, je objekt úlohy uložen ve vzdáleném počítači. K vzdálenému spuštění příkazu Invoke-Command je nutné použít jiný příkaz Stop-Job. Další informace o vzdálených úlohách na pozadí najdete v tématu about_Remote_Jobs.

První příkaz vytvoří na počítači se serverem Server01 relaci PowerShellu (PSSession) a pak uloží objekt relace do proměnné $s. Příkaz používá přihlašovací údaje správce domény.

Druhý příkaz používá rutinu Invoke-Command ke spuštění příkazu Start-Job v relaci. Příkaz v úloze získá všechny události v protokolu událostí systému. Výsledný objekt úlohy je uložen v proměnné $j.

Třetí příkaz zastaví úlohu. Pomocí rutiny Invoke-Command spustí příkaz Stop-Job v PSSession na Serveru01. Vzhledem k tomu, že objekty úloh jsou uloženy v $j, což je proměnná v místním počítači, příkaz používá Pomocí modifikátoru oboru identifikovat $j jako místní proměnnou. Další informace o Použití modifikátoru oboru naleznete v tématu about_Remote_Variables.

Po dokončení příkazu se úloha zastaví a psSession v $s je k dispozici pro použití.

Příklad 2: Zastavení úlohy na pozadí

Stop-Job -Name "Job1"

Tento příkaz zastaví úlohu Job1 na pozadí.

Příklad 3: Zastavení několika úloh na pozadí

Stop-Job -Id 1, 3, 4

Tento příkaz zastaví tři úlohy. Identifikuje je podle jejich ID .

Příklad 4: Zastavení všech úloh na pozadí

Get-Job | Stop-Job

Tento příkaz zastaví všechny úlohy na pozadí v aktuální relaci.

Příklad 5: Zastavení všech blokovaných úloh na pozadí

Stop-Job -State Blocked

Tento příkaz zastaví všechny blokované úlohy.

Příklad 6: Zastavení úlohy podle ID instance

Get-Job | Format-Table ID, Name, Command, @{Label="State";Expression={$_.JobStateInfo.State}},
InstanceID -Auto
Id Name Command                 State  InstanceId
-- ---- -------                 -----  ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s*         Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
Stop-Job -InstanceId e3bbfed1-9c53-401a-a2c3-a8db34336adf

Tyto příkazy ukazují, jak zastavit úlohu na základě ID instance.

První příkaz používá rutinu Get-Job k získání úloh v aktuální relaci. Příkaz používá operátor kanálu (|) k odeslání úloh do příkazu Format-Table, který zobrazí tabulku zadaných vlastností každé úlohy. Tabulka obsahuje id instance každé úlohy. Používá počítanou vlastnost k zobrazení stavu úlohy.

Druhý příkaz používá Stop-Job příkaz, který má parametr InstanceID k zastavení vybrané úlohy.

Příklad 7: Zastavení úlohy ve vzdáleném počítači

$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog -LogName System} -AsJob
$j | Stop-Job -PassThru
Id    Name    State      HasMoreData     Location         Command
--    ----    ----       -----------     --------         -------
5     Job5    Stopped    True            user01-tablet    Get-EventLog -LogName Sy...

Tento příklad ukazuje, jak pomocí rutiny Stop-Job zastavit úlohu spuštěnou na vzdáleném počítači.

Vzhledem k tomu, že úloha byla spuštěna s parametrem AsJob rutiny Invoke-Command, nachází se objekt Úloha na místním počítači, i když úloha běží na vzdáleném počítači. Proto můžete k zastavení úlohy použít místní příkaz Stop-Job.

První příkaz používá rutinu Invoke-Command ke spuštění úlohy na pozadí na počítači Server01. Příkaz používá parametr AsJob ke spuštění vzdáleného příkazu jako úlohu na pozadí.

Tento příkaz vrátí objekt úlohy, což je stejný objekt úlohy, který vrací rutina Start-Job. Příkaz uloží objekt úlohy do proměnné $j.

Druhý příkaz pomocí operátoru kanálu odešle úlohu v proměnné $j do Stop-Job. Příkaz pomocí parametru PassThru směruje Stop-Job k vrácení objektu úlohy. Zobrazení objektu úlohy potvrzuje, že stav úlohy je Zastaveno.

Pro další informace o úlohách na pozadí vzdáleného připojení se podívejte na téma about_Remote_Jobs.

Parametry

-Confirm

Před spuštěním cmdletu vás vyzve k potvrzení.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:viz

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Filter

Určuje tabulku hodnot hash podmínek. Tato rutina zastaví úlohy, které splňují každou podmínku. Zadejte tabulku hash, kde klíče jsou vlastnosti úlohy a hodnoty jsou hodnoty vlastností úlohy.

Tento parametr funguje pouze u vlastních typů úloh, například WorkflowJobs a ScheduledJobs. Nefunguje na standardních úlohách na pozadí, jako jsou úlohy vytvořené pomocí rutiny Start-Job. Informace o podpoře tohoto parametru najdete v tématu nápovědy pro typ úlohy.

Tento parametr byl představen ve Windows PowerShellu 3.0.

Vlastnosti parametru

Typ:Hashtable
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

FilterParameterSet
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Id

Určuje ID úloh, které tato rutina zastaví. Výchozí hodnota je všechny úlohy v aktuální relaci.

ID je celé číslo, které jednoznačně identifikuje úlohu v aktuální relaci. ** Snadněji se zapamatuje a zadává než identifikátor instance, ale je jedinečný pouze v aktuální relaci. Můžete zadat jedno nebo více ID oddělených čárkami. Pokud chcete zjistit ID úlohy, zadejte Get-Job.

Vlastnosti parametru

Typ:

Int32[]

Default value:All jobs
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

SessionIdParameterSet
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-InstanceId

Určuje ID instancí úloh, které tato rutina zastaví. Výchozí nastavení zahrnuje všechny úlohy.

ID instance je identifikátor GUID, který jednoznačně identifikuje úlohu v počítači. K vyhledání ID instance úlohy použijte Get-Job.

Vlastnosti parametru

Typ:

Guid[]

Default value:All jobs
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

InstanceIdParameterSet
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Job

Určuje úlohy, které tato rutina zastaví. Zadejte proměnnou, která obsahuje úlohy, nebo příkaz, který vyhledá úlohy. K odeslání úloh do rutiny Stop-Job můžete použít také operátor kanálu. Ve výchozím nastavení Stop-Job odstraní všechny úlohy, které byly spuštěny v aktuální relaci.

Vlastnosti parametru

Typ:

Job[]

Default value:All jobs
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

JobParameterSet
Position:0
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Name

Určuje popisné názvy úloh, které tato rutina zastaví. Zadejte názvy úloh do seznamu odděleného čárkami nebo pomocí zástupných znaků (*) zadejte vzor názvu úlohy. Ve výchozím nastavení Stop-Job zastaví všechny úlohy vytvořené v aktuální relaci.

Protože popisný název není zaručen jedinečný, při zastavování úloh podle názvu použijte WhatIf a Potvrdit parametry.

Vlastnosti parametru

Typ:

String[]

Default value:All jobs
Podporuje zástupné znaky:True
DontShow:False

Sady parametrů

NameParameterSet
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-PassThru

Vrátí objekt představující položku, se kterou pracujete. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-State

Určuje stav úlohy. Tato rutina zastaví pouze úlohy v zadaném stavu. Přijatelné hodnoty pro tento parametr jsou:

  • NotStarted
  • Running
  • Completed
  • Failed
  • Stopped
  • Blocked
  • Suspended
  • Disconnected
  • Suspending
  • Stopping

Další informace o stavech úloh viz JobState.

Vlastnosti parametru

Typ:JobState
Default value:All jobs
Přípustné hodnoty:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

StateParameterSet
Position:0
Povinné:True
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-WhatIf

Ukazuje, co se stane, když se příkaz spustí. Příkazový modul nebyl spuštěn.

Vlastnosti parametru

Typ:SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Wi

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.

Vstupy

System.Management.Automation.RemotingJob

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

Výstupy

None

Ve výchozím nastavení tato rutina nevrací žádný výstup.

System.Management.Automation.PSRemotingJob

Pokud použijete parametr PassThru, vrátí tato rutina objekt úlohy.

Poznámky

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

  • Všechny platformy:
    • spjb