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 stop-job.
Pomocí stop-job můžete zastavit úlohy na pozadí, například úlohy, které byly spuštěny pomocí rutiny Start-Job nebo parametru AsJob 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, jako jsou úlohy pracovního postupu a instance naplánovaných úloh. Pokud chcete povolit zastavení úlohy 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 ve vzdáleném počítači pomocí 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í rutiny Invoke-Command ke spuštění příkazu Start-Job vzdáleně, objekt úlohy je uložen ve vzdáleném počítači. K vzdálenému spuštění příkazu Stop-Job je nutné použít jiný příkaz Invoke-Command. 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 Se server01 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.
Používá rutinu
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 Úlohy1 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 pomocí 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 pomocí operátoru kanálu (|) odešle úlohy 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á příkaz Stop-Job s parametrem 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 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 pomocí parametru AsJob rutiny Invoke-Command, nachází se objekt úlohy 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í příkaz Stop-Job.
První příkaz používá rutinu Invoke-Command ke spuštění úlohy na pozadí na počítači Se 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 do $j proměnné 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.
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 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í všechny podmínky. 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í, 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. Operátor kanálu můžete také použít k odeslání úloh do rutiny Stop-Job. 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í zastavit úlohu 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:
- Nezahájeno
- Běhání
- Dokončeno
- Neúspěšné
- Zastavený
- Blokované
- Pozastavený
- Nesouvislý
- Pozastavení
- Zastavování
Další informace o stavech úloh naleznete v tématu JobState – výčet v knihovně MSDN.
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, System.Management.Automation.PSRemotingJob
Tato rutina vrátí objekt úlohy, pokud zadáte parametr PassThru. Jinak tento příkaz negeneruje žádný výstup.