Sdílet prostřednictvím


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 ve vlastnosti PSJobTypeName ú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 Suspend-Job Wait nebo rutinuWait-Job. Pokud je úloha pracovního postupu pozastavena, hodnota state vlastnost úlohy je 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 pracovního postupu PSPersist . 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ří Get-SystemLog pracovní postup. Pracovní postup používá CheckPoint-Workflow aktivitu 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í Get-SystemLog pracovního postupu jako úlohy na pozadí. Příkaz používá společný parametr pracovního postupu JobName k zadání popisného názvu úlohy pracovního postupu.

Třetí příkaz pomocí rutiny Get-Job získá LogflowJob úlohu pracovního postupu. Výstup ukazuje, že hodnota PSJobTypeName vlastnost je PSWorkflowJob.

Čtvrtý příkaz pomocí rutiny Suspend-Job pozastaví LogflowJob úlohu. Ú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 pomocí rutiny Get-Job získá úlohu LogWorkflowJob. Výstup ukazuje, že úloha pracovního postupu byla úspěšně pozastavena.

Třetí příkaz použije 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 pomocí rutiny Invoke-Command pozastaví úlohu pracovního postupu na vzdáleném počítači Srv01. Hodnota parametru Filter je tabulka hash, která určuje hodnotu CustomID. Toto vlastní ID je metadata úlohy (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 pomocí parametru Wait počká, dokud úloha pracovního postupu nebude pozastavena. 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 zobrazí výzvu 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é 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. Tento parametr přijímá tyto hodnoty:

  • NotStarted
  • Spuštěno
  • Dokončeno
  • Neúspěšný
  • Zastaveno
  • Blokované
  • Dočasně blokován.
  • Odpojeno
  • Pozastavení
  • Zastavování

Suspend-Jobpozastaví pouze úlohy pracovního postupu ve stavu Spuštěno.

Další informace o stavech úloh naleznete v části JobState – výčet.

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 se vrátí okamžitě, i když úloha pracovního postupu ještě není v pozastaveném stavu.

Parametr Wait je ekvivalentem Suspend-Job propojení příkazu s rutinou 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

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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

Job

Do této rutiny můžete převést všechny typy úloh. Pokud Suspend-Job však získá úlohu nepodporovaného typu, vrátí ukončující chybu.

Výstupy

Job

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í se zpráva s upozorněním. Pokud chcete upozornění potlačit, použijte společný parametr WarningAction s hodnotou SilentlyContinue.

Pokud úloha není typu, který podporuje pozastavení, Suspend-Job vrátí ukončující chybu.

Chcete-li najít úlohy pracovního postupu, které jsou pozastaveny, včetně těch, které byly pozastaveny touto rutinou, použijte parametr Get-Job State rutiny k získání úloh 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í.