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]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Name] <String[]>
[-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 před získáním úlohy počkat na dokončení pozastavení, použijte parametr
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
The first command creates the Get-SystemLog workflow. The workflow uses the CheckPoint-Workflow activity to define a checkpoint in the workflow.
#Sample WorkflowWorkflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
The second command uses the *AsJob* parameter that is common to all workflows to run the Get-SystemLog workflow as a background job. The command uses the *JobName* workflow common parameter to specify a friendly name for the workflow job.
PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"
The third command uses the **Get-Job** cmdlet to get the Get-SystemLogJob workflow job. The output shows that the value of the **PSJobTypeName** property is PSWorkflowJob.
PS C:\> Get-Job -Name Get-SystemLogJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Get-SystemLogJob PSWorkflowJob Running True localhost Get-SystemLog
The fourth command uses the **Suspend-Job** cmdlet to suspend the Get-SystemLogJob job. The job runs to the checkpoint and then suspends.
PS C:\> Suspend-Job -Name Get-SystemLogJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Get-SystemLogJob PSWorkflowJob Suspended True localhost Get-SystemLog
Tento příklad ukazuje, jak pozastavit úlohu pracovního postupu.
Příklad 2: Pozastavení a obnovení úlohy pracovního postupu
The first command suspends the LogWorkflowJob job.The command returns immediately. The output shows that the workflow job is still running, even though it is being suspended.
PS C:\> Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
The second command uses the **Get-Job** cmdlet to get the LogWorkflowJob job. The output shows that the workflow job suspended successfully.
PS C:\> Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
The third command uses the **Get-Job** cmdlet to get the LogWorkflowJob job and the Resume-Job cmdlet to resume it. The output shows that the workflow job resumed successfully and is now running.
PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Tento příklad ukazuje, jak pozastavit a obnovit úlohu pracovního postupu.
Příklad 3: Pozastavení úlohy pracovního postupu ve vzdáleném počítači
PS C:\> 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
PS C:\> 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
PS C:\> 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í pozastavit úlohu 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é převést 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í
pozastavení úlohy pozastaví pouze úlohy pracovního postupu ve stavu Spuštěno.
Další informace o stavech úloh naleznete v tématu JobState – výčet v knihovně MSDN.
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í pozastavit úlohu 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 však pozastavit úlohu získá úlohu nepodporovaného typu, vrátí ukončující chybu.
Výstupy
Tato rutina vrátí úlohy, které pozastavila.
Poznámky
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, pozastavit úlohu 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í, pozastavit úlohu 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í.