Stop-Job
Zastaví úlohu PowerShellu na pozadí.
Syntax
Stop-Job
[-PassThru]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-Job] <Job[]>
[-PassThru]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Stop-Job
[-PassThru]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina Stop-Job
zastaví úlohy PowerShellu na pozadí, které právě probíhají. Tuto rutinu můžete použít k zastavení všech úloh nebo k zastavení vybraných úloh na základě jejich názvu, ID, ID instance nebo stavu nebo předáním objektu úlohy do Stop-Job
.
Můžete použít Stop-Job
k zastavení úloh na pozadí, například těch, které byly spuštěny pomocí Start-Job
rutiny nebo parametru AsJob jakékoli rutiny. Když zastavíte úlohu na pozadí, PowerShell dokončí všechny úlohy, které čekají na vyřízení v dané frontě úloh, 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 verzí Windows PowerShell 3.0 Stop-Job
také zastavuje vlastní typy úloh, jako jsou WorkflowJobs a instance ScheduledJobs. Pokud chcete povolit Stop-Job
zastavení úlohy s vlastním typem úlohy, importujte modul, který podporuje vlastní typ úlohy, do relace před spuštěním Stop-Job
příkazu, a to buď pomocí Import-Module
rutiny, nebo pomocí rutiny nebo získáním rutiny v modulu. Informace o konkrétním vlastním typu úlohy najdete v dokumentaci k funkci 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 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í Invoke-Command
rutiny pro vzdálené spuštění Start-Job
příkazu, je objekt úlohy uložen ve vzdáleném počítači. Ke vzdálenému spuštění Stop-Job
příkazu je nutné použít jiný Invoke-Command
příkaz. Další informace o vzdálených úlohách na pozadí najdete v tématu about_Remote_Jobs.
První příkaz vytvoří relaci PowerShellu (PSSession) na počítači Server01 a pak uloží objekt relace do $s
proměnné. Příkaz používá přihlašovací údaje správce domény.
Druhý příkaz použije rutinu Invoke-Command
ke spuštění Start-Job
příkazu 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 $j
proměnné.
Třetí příkaz úlohu zastaví. Pomocí rutiny Invoke-Command
spustí Stop-Job
příkaz v nástroji PSSession na serveru Server01. Vzhledem k tomu, že objekty úlohy jsou uloženy v $j
, což je proměnná v místním počítači, příkaz používá modifikátor using scope k identifikaci $j
jako místní proměnné. Další informace o použití modifikátoru oboru najdete v tématu about_Remote_Variables.
Po dokončení příkazu se úloha zastaví a nástroj PSSession je $s
k dispozici pro použití.
Příklad 2: Zastavení úlohy na pozadí
Stop-Job -Name "Job1"
Tento příkaz zastaví úlohu na Job1
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ě jejího ID instance.
První příkaz použije 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 Format-Table
příkazu, který zobrazí tabulku se zadanými vlastnostmi každé úlohy. Tabulka obsahuje ID instance každé úlohy. K zobrazení stavu úlohy se používá počítaná vlastnost.
Druhý příkaz používá Stop-Job
příkaz, který má parametr InstanceID k zastavení vybrané úlohy.
Příklad 7: Zastavení úlohy na vzdáleném počítači
$j = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-EventLog System} -AsJob
$j | Stop-Job -PassThru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True user01-tablet get-eventlog system
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 Invoke-Command
AsJob rutiny, je objekt Job umístěn v 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í Stop-Job
příkaz.
První příkaz pomocí rutiny Invoke-Command
spustí úlohu na pozadí na počítači Server01. Příkaz používá parametr AsJob ke spuštění vzdáleného příkazu jako úlohy 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 $j
proměnné.
Druhý příkaz pomocí operátoru kanálu odešle úlohu v $j
proměnné do Stop-Job
. Příkaz používá parametr PassThru k nasměrování Stop-Job
k vrácení objektu úlohy. Zobrazení objektu úlohy potvrzuje, že stav úlohy je Zastaveno.
Další informace o vzdálených úlohách na pozadí najdete v tématu about_Remote_Jobs.
Parametry
-Confirm
Před spuštěním rutiny zobrazí výzvu k potvrzení.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Určuje tabulku hodnot hash podmínek. Tato rutina zastaví úlohy, které splňují všechny podmínky. Zadejte hashovací tabulku, kde klíče jsou vlastnosti úlohy a hodnoty jsou hodnoty vlastností úlohy.
Tento parametr funguje pouze u vlastních typů úloh, jako jsou WorkflowJobs a ScheduledJobs. Nefunguje u standardních úloh na pozadí, jako jsou úlohy vytvořené pomocí rutiny Start-Job
.
Informace o podpoře tohoto parametru najdete v tématu nápovědy k typu úlohy.
Tento parametr byl zaveden v Windows PowerShell 3.0.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Id
Určuje ID úloh, které tato rutina zastaví. Výchozí hodnota jsou všechny úlohy v aktuální relaci.
ID je celé číslo, které jednoznačně identifikuje úlohu v aktuální relaci. Je snazší si ho zapamatovat a zadat než ID instance, ale je jedinečné pouze v aktuální relaci. Můžete zadat jedno nebo více ID oddělených čárkami. Id úlohy zjistíte zadáním Get-Job
příkazu .
Type: | Int32[] |
Position: | 0 |
Default value: | All jobs |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-InstanceId
Určuje ID instancí úloh, které tato rutina zastaví. Výchozí hodnota je všechny úlohy.
ID instance je identifikátor GUID, který jednoznačně identifikuje úlohu v počítači. Pokud chcete najít ID instance úlohy, použijte Get-Job
.
Type: | Guid[] |
Position: | 0 |
Default value: | All jobs |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Určuje úlohy, které tato rutina zastaví. Zadejte proměnnou, která obsahuje úlohy, nebo příkaz, který získá úlohy. K odesílání úloh do Stop-Job
rutiny můžete také použít operátor kanálu. Ve výchozím nastavení odstraní všechny úlohy, Stop-Job
které byly spuštěny v aktuální relaci.
Type: | Job[] |
Position: | 0 |
Default value: | All jobs |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Name
Určuje popisné názvy úloh, které tato rutina zastaví. Zadejte názvy úloh do seznamu odděleného čárkami nebo použijte zástupné znaky (*
) k zadání vzoru 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ý jako jedinečný, použijte při zastavování úloh podle názvu parametry WhatIf a Confirm .
Type: | String[] |
Position: | 0 |
Default value: | All jobs |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-PassThru
Vrátí objekt představující položku, se kterou pracujete. Ve výchozím nastavení tato rutina negeneruje žádný výstup.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-State
Určuje stav úlohy. Tato rutina zastaví pouze úlohy v zadaném stavu. Tento parametr přijímá tyto hodnoty:
NotStarted
Running
Completed
Failed
Stopped
Blocked
Suspended
Disconnected
Suspending
Stopping
Další informace o stavech úloh naleznete v tématu JobState – výčet.
Type: | JobState |
Accepted values: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | All jobs |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Vstupy
System.Management.Automation.RemotingJob
Do této rutiny můžete připojit objekt úlohy.
Výstupy
None
Ve výchozím nastavení tato rutina nevrací žádný výstup.
System.Management.Automation.PSRemotingJob
Při použití parametru PassThru vrátí tato rutina objekt úlohy.
Poznámky
PowerShell obsahuje následující aliasy pro Stop-Job
:
- Všechny platformy:
spjb
Související odkazy
Váš názor
Odeslat a zobrazit názory pro