Sdílet prostřednictvím


Suspend-Job

Dočasně zastaví úlohy pracovního postupu.

Syntax

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á Get-SystemLogJob úlohu pracovního postupu. Výstup ukazuje, že hodnota PSJobTypeName vlastnost je PSWorkflowJob.

Čtvrtý příkaz pomocí rutiny Suspend-Job pozastaví Get-SystemLogJob úlohu. Úloha se spustí na kontrolní bod a pak se pozastaví.

#Sample WorkflowWorkflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"

PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  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á.

PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

PS C:\> 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

PS C:\> 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

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 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

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 zobrazí výzvu k potvrzení.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:SwitchParameter
Aliases:F
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 .

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 .

Type:Job[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
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
  • 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.

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 .

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters: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í.