Udostępnij za pomocą


Suspend-Job

Tymczasowo zatrzymuje zadania przepływu pracy.

Składnia

SessionIdParameterSet (domyślnie)

Suspend-Job
    [-Id] <Int32[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Suspend-Job
    [-Job] <Job[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FilterParameterSet

Suspend-Job
    [-Filter] <Hashtable>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Suspend-Job
    [-State] <JobState>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Suspend-Job
    [-InstanceId] <Guid[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Suspend-Job
    [-Name] <String[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Opis

Polecenie cmdlet Suspend-Job zawiesza zadania przepływu pracy. Wstrzymanie oznacza tymczasowe przerwanie lub wstrzymanie zadania przepływu pracy. To polecenie cmdlet umożliwia użytkownikom, którzy uruchamiają przepływy pracy, aby zawiesić przepływ pracy. Uzupełnia działanie suspend-workflowhttps://go.microsoft.com/fwlink/?LinkId=267141, które jest poleceniem w przepływie pracy, który zawiesza przepływ pracy.

Polecenie cmdlet Suspend-Job działa tylko w przypadku zadań przepływu pracy. Nie działa w przypadku standardowych zadań w tle, takich jak te, które są uruchamiane przy użyciu polecenia cmdlet Start-Job.

Aby zidentyfikować zadanie przepływu pracy, poszukaj wartości zadania PSWorkflowJob w PSJobTypeName właściwości zadania. Aby określić, czy określony typ zadania niestandardowego obsługuje polecenie cmdlet Suspend-Job, zobacz tematy pomocy dotyczące niestandardowego typu zadania.

Po zawieszeniu zadania przepływu pracy zadanie przepływu pracy jest uruchamiane do następnego punktu kontrolnego, zawiesza się i natychmiast zwraca obiekt zadania przepływu pracy. Aby poczekać na zakończenie zawieszenia przed pobraniem zadania, użyj parametru WaitSuspend-Job lub polecenia cmdlet Wait-Job. Po zawieszeniu zadania przepływu pracy wartość właściwości State zadania jest zawieszona.

Wstrzymywanie poprawnie opiera się na punktach kontrolnych. Bieżący stan zadania, metadane i dane wyjściowe są zapisywane w punkcie kontrolnym, dzięki czemu zadanie przepływu pracy można wznowić bez utraty stanu lub danych. Jeśli zadanie przepływu pracy nie ma punktów kontrolnych, nie można go poprawnie zawiesić. Aby dodać punkty kontrolne do uruchomionego przepływu pracy, użyj wspólnego parametru PSPersist przepływu pracy. Możesz użyć parametru Force, aby natychmiast zawiesić dowolne zadanie przepływu pracy i wstrzymać zadanie przepływu pracy, które nie ma punktów kontrolnych, ale akcja może spowodować utratę stanu i danych.

Przed użyciem polecenia cmdlet zadania w niestandardowym typie zadania, takim jak zadanie przepływu pracy (psWorkflowJob) zaimportuj moduł obsługujący niestandardowy typ zadania za pomocą polecenia cmdlet Import-Module lub polecenia cmdlet w module.

To cmdlet zostało wprowadzone w Windows PowerShell 3.0.

Przykłady

Przykład 1. Wstrzymanie zadania przepływu pracy według nazwy

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

W tym przykładzie pokazano, jak zawiesić zadanie przepływu pracy.

Przykład 2. Wstrzymywanie i wznawianie zadania przepływu pracy

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

W tym przykładzie pokazano, jak wstrzymać i wznowić zadanie przepływu pracy.

Przykład 3. Wstrzymanie zadania przepływu pracy na komputerze zdalnym

PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

To polecenie używa polecenia cmdlet Invoke-Command do zawieszenia zadania przepływu pracy na komputerze zdalnym Srv01. Wartość parametru Filter jest tabelą skrótów określającą wartość CustomID. Ten CustomID to metadane zadania (PSPrivateMetadata).

Przykład 4. Oczekiwanie na wstrzymanie zadania przepływu pracy

PS C:\> Suspend-Job VersionCheck -Wait
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
 5     VersionCheck  PSWorkflowJob      Suspended     True            localhost            LogWorkflow

To polecenie zawiesza zadanie przepływu pracy VersionCheck. Polecenie używa parametru Wait, aby poczekać, aż zadanie przepływu pracy zostanie zawieszone. Gdy zadanie przepływu pracy zostanie uruchomione do następnego punktu kontrolnego i zostanie wstrzymane, polecenie zakończy działanie i zwróci obiekt zadania.

Przykład 5. Wymuszanie wstrzymania zadania przepływu pracy

PS C:\> Suspend-Job Maintenance -Force

To polecenie zawiesza zadanie przepływu pracy konserwacji wymuszone. Zadanie konserwacji nie ma punktów kontrolnych. Nie można go poprawnie zawiesić i może nie zostać wznowiony poprawnie.

Parametry

-Confirm

Prosi o potwierdzenie przed uruchomieniem cmdletu.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:por

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Filter

Określa tabelę skrótów warunków. To polecenie cmdlet zawiesza zadania spełniające wszystkie warunki. Wprowadź tabelę skrótów, w której klucze są właściwościami zadania, a wartości są wartościami właściwości zadania.

Właściwości parametru

Typ:Hashtable
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

FilterParameterSet
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Force

Natychmiast zawiesza zadanie przepływu pracy. Ta akcja może spowodować utratę stanu i danych.

Domyślnie suspend-job umożliwia uruchomienie zadania przepływu pracy do następnego punktu kontrolnego, a następnie zawiesza je. Tego parametru można również użyć do wstrzymania zadań przepływu pracy, które nie mają punktów kontrolnych.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:F

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-Id

Określa identyfikatory zadań, które to polecenie cmdlet zawiesza.

Identyfikator jest liczbą całkowitą, która jednoznacznie identyfikuje zadanie w bieżącej sesji. Łatwiej jest zapamiętać identyfikator wystąpienia i wpisać go, ale jest on unikatowy tylko w bieżącej sesji. Można wpisać jeden lub więcej identyfikatorów rozdzielonych przecinkami. Aby znaleźć identyfikator zadania, użyj polecenia cmdlet Get-Job.

Właściwości parametru

Typ:

Int32[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

SessionIdParameterSet
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-InstanceId

Określa identyfikatory wystąpień zadań, które to polecenie cmdlet zawiesza. Wartość domyślna to wszystkie zadania.

Identyfikator wystąpienia to identyfikator GUID, który jednoznacznie identyfikuje zadanie na komputerze. Aby znaleźć identyfikator wystąpienia zadania, użyj polecenia Get-Job.

Właściwości parametru

Typ:

Guid[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

InstanceIdParameterSet
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Job

Określa zadania przepływu pracy, które zatrzymuje to polecenie cmdlet. Wprowadź zmienną zawierającą zadania przepływu pracy lub polecenie, które pobiera zadania przepływu pracy. Zadania przepływu pracy można również przekazać potokowi do polecenia cmdlet Suspend-Job.

Właściwości parametru

Typ:

Job[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

JobParameterSet
Position:0
Obowiązkowe:True
Wartość z potoku:True
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Name

Określa przyjazne nazwy zadań, które to polecenie cmdlet zawiesza. Wprowadź co najmniej jedną nazwę zadania przepływu pracy. Obsługiwane są symbole wieloznaczne.

Właściwości parametru

Typ:

String[]

Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

NameParameterSet
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-State

Określa stan zadania. To polecenie cmdlet zatrzymuje tylko zadania w określonym stanie. Dopuszczalne wartości tego parametru to:

  • Nierozpoczęty
  • Bieganie
  • Zakończone
  • Nie powiodło się
  • Zatrzymano
  • Zablokowany
  • Zawieszony
  • Odłączony
  • Zawieszenie
  • Zatrzymanie

wstrzymać zadanie zawiesza tylko zadania przepływu pracy w stanie Uruchomione.

Aby uzyskać więcej informacji na temat stanów zadań, zobacz JobState Enumeration w bibliotece MSDN.

Właściwości parametru

Typ:JobState
Domyślna wartość:None
Dopuszczalne wartości:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

StateParameterSet
Position:0
Obowiązkowe:True
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:True
Wartość z pozostałych argumentów:False

-Wait

Wskazuje, że to polecenie cmdlet pomija wiersz polecenia, dopóki zadanie przepływu pracy nie będzie w stanie wstrzymania. Domyślnie wstrzymać zadanie jest zwracane natychmiast, nawet jeśli zadanie przepływu pracy nie jest jeszcze w stanie wstrzymania.

Parametr Wait jest odpowiednikiem potokowania polecenia Suspend-Job do polecenia cmdlet Wait-Job.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:None
Obsługuje symbole wieloznaczne:False
DontShow:False

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

-WhatIf

Pokazuje, co się stanie, jeśli polecenie cmdlet zostanie uruchomione. Cmdlet nie jest uruchomiony.

Właściwości parametru

Typ:SwitchParameter
Domyślna wartość:False
Obsługuje symbole wieloznaczne:False
DontShow:False
Aliasy:Wi

Zestawy parametrów

(All)
Position:Named
Obowiązkowe:False
Wartość z potoku:False
Wartość z potoku według nazwy właściwości:False
Wartość z pozostałych argumentów:False

CommonParameters

To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.

Dane wejściowe

Job

Do tego polecenia cmdlet można przekazać potoki wszystkich typów zadań. Jeśli jednak suspend-job pobiera zadanie nieobsługiwanego typu, zwraca błąd zakończenia.

Dane wyjściowe

Job

To polecenie cmdlet zwraca wstrzymane zadania.

Uwagi

  • Mechanizm i lokalizacja zapisywania zawieszonego zadania mogą się różnić w zależności od typu zadania. Na przykład zawieszone zadania przepływu pracy są domyślnie zapisywane w magazynie plików prostych, ale mogą być również zapisywane w bazie danych.

  • Jeśli przesyłasz zadanie przepływu pracy, które nie jest w stanie Uruchomione, wstrzymać zadanie wyświetli komunikat ostrzegawczy. Aby pominąć ostrzeżenie, użyj WarningAction wspólnego parametru z wartością SilentlyContinue.

    Jeśli zadanie nie jest typu obsługujące wstrzymanie, wstrzymać zadanie zwraca błąd zakończenia.

  • Aby znaleźć wstrzymane zadania przepływu pracy, w tym te, które zostały zawieszone przez to polecenie cmdlet, użyj parametru stanu polecenia cmdlet get-job , aby pobrać zadania przepływu pracy w stanie Wstrzymanie.

  • Niektóre typy zadań mają opcje lub właściwości uniemożliwiające wstrzymanie zadania przez program Windows PowerShell. Jeśli próba zawieszenia zadania nie powiedzie się, sprawdź, czy opcje i właściwości zadania zezwalają na wstrzymanie.