Suspend-Job
Dočasně zastaví úlohy pracovního postupu.
Syntaxe
Suspend-Job
[-Force]
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Rutina Suspend-Job
pozastaví úlohy pracovního postupu. Pozastavení znamená dočasné přerušení nebo pozastavení úlohy pracovního postupu. Tato rutina umožňuje uživatelům, kteří spouští pracovní postupy, pozastavit pracovní postup. Doplňuje aktivitu pozastavení pracovního postupuhttps://go.microsoft.com/fwlink/?LinkId=267141, což je příkaz v pracovním postupu, který pracovní postup pozastaví.
Rutina Suspend-Job
funguje jenom u úloh pracovního postupu. Nefunguje na standardních úlohách na pozadí, jako jsou úlohy, které jsou spuštěny pomocí rutiny Start-Job
.
Chcete-li identifikovat úlohu pracovního postupu, vyhledejte hodnotu PSWorkflowJob v PSJobTypeName vlastnost úlohy. Pokud chcete zjistit, jestli konkrétní vlastní typ úlohy podporuje rutinu Suspend-Job
, přečtěte si témata nápovědy pro vlastní typ úlohy.
Když pozastavíte úlohu pracovního postupu, úloha pracovního postupu se spustí na další kontrolní bod, pozastaví a okamžitě vrátí objekt úlohy pracovního postupu. Pokud chcete počkat na dokončení pozastavení před získáním úlohy, použijte parametr WaitSuspend-Job
nebo rutinu Wait-Job
. Při pozastavení úlohy pracovního postupu je hodnota vlastnosti State úlohy pozastavena.
Správné pozastavení závisí na kontrolních bodech. Aktuální stav úlohy, metadata a výstup jsou uloženy do kontrolního bodu, aby bylo možné obnovit úlohu pracovního postupu bez ztráty stavu nebo dat. Pokud úloha pracovního postupu nemá kontrolní body, nelze ji správně pozastavit. Pokud chcete přidat kontrolní body do spuštěného pracovního postupu, použijte společný parametr PSPersist pracovního postupu. Pomocí parametru Force můžete okamžitě pozastavit jakoukoli úlohu pracovního postupu a pozastavit úlohu pracovního postupu, která nemá kontrolní body, ale akce může způsobit ztrátu stavu a dat.
Než použijete rutinu Job pro vlastní typ úlohy, například úlohu pracovního postupu (PSWorkflowJob) importujte modul, který podporuje vlastní typ úlohy, buď pomocí rutiny Import-Module
, nebo pomocí rutiny v modulu.
Tato rutina byla zavedena ve Windows PowerShellu 3.0.
Příklady
Příklad 1: Pozastavení úlohy pracovního postupu podle názvu
Tento příklad ukazuje, jak pozastavit úlohu pracovního postupu.
První příkaz vytvoří pracovní postup Get-SystemLog
. Pracovní postup používá aktivitu CheckPoint-Workflow
k definování kontrolního bodu v pracovním postupu.
Druhý příkaz používá parametr AsJob, který je společný pro všechny pracovní postupy ke spuštění pracovního postupu Get-SystemLog
jako úlohy na pozadí. Příkaz používá společný parametr JobName pracovního postupu k zadání popisného názvu úlohy pracovního postupu.
Třetí příkaz používá rutinu Get-Job
k získání úlohy pracovního postupu LogflowJob
. Výstup ukazuje, že hodnota PSJobTypeName vlastnost je PSWorkflowJob.
Čtvrtý příkaz používá rutinu Suspend-Job
k pozastavení LogflowJob
úlohy. Úloha se spustí na kontrolní bod a pak se pozastaví.
#Sample Workflow
workflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
inlinescript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Running True localhost Get-SystemLog
Suspend-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Suspended True localhost Get-SystemLog
Příklad 2: Pozastavení a obnovení úlohy pracovního postupu
Tento příklad ukazuje, jak pozastavit a obnovit úlohu pracovního postupu.
První příkaz pozastaví úlohu LogWorkflowJob. Příkaz se vrátí okamžitě. Výstup ukazuje, že úloha pracovního postupu je stále spuštěná, i když je pozastavená.
Druhý příkaz používá rutinu Get-Job
k získání úlohy LogWorkflowJob. Výstup ukazuje, že úloha pracovního postupu byla úspěšně pozastavena.
Třetí příkaz používá rutinu Get-Job
k získání úlohy LogWorkflowJob a rutiny Resume-Job
k jeho obnovení. Výstup ukazuje, že úloha pracovního postupu byla úspěšně obnovena a nyní je spuštěná.
Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Příklad 3: Pozastavení úlohy pracovního postupu ve vzdáleném počítači
Invoke-Command -ComputerName Srv01 -ScriptBlock {Suspend-Job -Filter @{CustomID="031589"}
Tento příkaz používá rutinu Invoke-Command
k pozastavení úlohy pracovního postupu ve vzdáleném počítači Srv01. Hodnota parametru Filter je hodnota hash, která určuje hodnotu CustomID.
Tento customID je metadata úloh (PSPrivateMetadata).
Příklad 4: Čekání na pozastavení úlohy pracovního postupu
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Tento příkaz pozastaví úlohu pracovního postupu VersionCheck. Příkaz používá parametr Wait k čekání na pozastavení úlohy pracovního postupu. Když se úloha pracovního postupu spustí na další kontrolní bod a je pozastavená, příkaz se dokončí a vrátí objekt úlohy.
Příklad 5: Vynucení pozastavení úlohy pracovního postupu
Suspend-Job Maintenance -Force
Tento příkaz pozastaví úlohu pracovního postupu údržby vynuceně. Úloha údržby nemá kontrolní body. Nelze jej správně pozastavit a nemusí být správně obnoven.
Parametry
-Confirm
Před spuštěním rutiny vás vyzve k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Filter
Určuje tabulku hodnot hash podmínek. Tato rutina pozastaví úlohy, které splňují všechny podmínky. Zadejte tabulku hash, kde klíče jsou vlastnosti úlohy a hodnoty jsou hodnoty vlastností úlohy.
Typ: | Hashtable |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Force
Pozastaví úlohu pracovního postupu okamžitě. Tato akce může způsobit ztrátu stavu a dat.
Ve výchozím nastavení Suspend-Job
umožňuje úlohu pracovního postupu spustit až do dalšího kontrolního bodu a pak ji pozastaví.
Tento parametr můžete také použít k pozastavení úloh pracovního postupu, které nemají kontrolní body.
Typ: | SwitchParameter |
Aliasy: | F |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Id
Určuje ID úloh, které tato rutina pozastaví.
ID je celé číslo, které jednoznačně identifikuje úlohu v aktuální relaci. Je jednodušší 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. K vyhledání ID úlohy použijte rutinu Get-Job
.
Typ: | Int32[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-InstanceId
Určuje ID instancí úloh, které tato rutina pozastaví. Výchozí hodnota je 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
.
Typ: | Guid[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Job
Určuje úlohy pracovního postupu, které tato rutina zastaví. Zadejte proměnnou, která obsahuje úlohy pracovního postupu, nebo příkaz, který získá úlohy pracovního postupu. Úlohy pracovního postupu můžete také pipetovat do rutiny Suspend-Job
.
Typ: | Job[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Name
Určuje popisné názvy úloh, které tato rutina pozastaví. Zadejte jeden nebo více názvů úloh pracovního postupu. Podporují se zástupné znaky.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-State
Určuje stav úlohy. Tato rutina zastaví pouze úlohy v zadaném stavu. Přijatelné hodnoty pro tento parametr jsou:
- NotStarted
- Tekoucí
- Hotový
- Neúspěšný
- Zastavený
- Blokovaný
- Pozastavený
- Nesouvislý
- Pozastavení
- Zastavení
Suspend-Job
pozastaví pouze úlohy pracovního postupu ve stavu Spuštěno.
Další informace o stavech úloh naleznete v tématu JobState Výčtu.
Typ: | JobState |
Přípustné hodnoty: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Wait
Označuje, že tato rutina potlačí příkazový řádek, dokud úloha pracovního postupu není v pozastaveném stavu. Ve výchozím nastavení Suspend-Job
vrátí okamžitě, i když úloha pracovního postupu ještě není v pozastaveném stavu.
Parametr Wait odpovídá propojení příkazu Suspend-Job
do rutiny Wait-Job
.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-WhatIf
Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Do této rutiny můžete převést všechny typy úloh. Pokud ale Suspend-Job
získá úlohu nepodporovaného typu, vrátí ukončující chybu.
Výstupy
Tato rutina vrátí úlohy, které pozastavila.
Poznámky
Windows PowerShell obsahuje následující aliasy pro Suspend-Job
:
sujb
Mechanismus a umístění pro uložení pozastavené úlohy se může lišit v závislosti na typu úlohy. Například pozastavené úlohy pracovního postupu se ve výchozím nastavení ukládají do plochého úložiště souborů, ale dají se také uložit do databáze.
Pokud odešlete úlohu pracovního postupu, která není ve spuštěném stavu, Suspend-Job
zobrazí zprávu s upozorněním. Chcete-li potlačit upozornění, použijte WarningAction společný parametr s hodnotou SilentlyContinue.
Pokud úloha není typu, který podporuje pozastavení, Suspend-Job
vrátí ukončující chybu.
Pokud chcete najít úlohy pracovního postupu, které jsou pozastavené, včetně úloh pozastavených touto rutinou, použijte parametr State rutiny Get-Job
a získejte úlohy pracovního postupu v pozastaveném stavu.
Některé typy úloh mají možnosti nebo vlastnosti, které brání pozastavení úlohy v prostředí Windows PowerShell. Pokud se pokusí pozastavit úlohu, ověřte, že možnosti a vlastnosti úlohy umožňují pozastavení.