Udostępnij za pośrednictwem


Suspend-Job

Tymczasowo zatrzymuje zadania przepływu pracy.

Składnia

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

Opis

Polecenie Suspend-Job cmdlet 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 Suspend-Job cmdlet 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 Start-Job polecenia cmdlet .

Aby zidentyfikować zadanie przepływu pracy, poszukaj wartości zadania PSWorkflowJob we właściwości PSJobTypeName zadania. Aby określić, czy określony typ zadania niestandardowego obsługuje Suspend-Job polecenie cmdlet, zobacz tematy pomocy dla 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 Wait polecenia Suspend-Job lub Wait-Job polecenia cmdlet. 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 przepływu pracy PSPersist . 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 przy użyciu Import-Module polecenia cmdlet lub polecenia cmdlet w module.

To polecenie cmdlet zostało wprowadzone w programie Windows PowerShell 3.0.

Przykłady

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

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

Pierwsze polecenie tworzy Get-SystemLog przepływ pracy. Przepływ pracy używa CheckPoint-Workflow działania do zdefiniowania punktu kontrolnego w przepływie pracy.

Drugie polecenie używa parametru AsJob , który jest wspólny dla wszystkich przepływów pracy w celu uruchomienia Get-SystemLog przepływu pracy jako zadania w tle. Polecenie używa wspólnego parametru przepływu pracy JobName , aby określić przyjazną nazwę zadania przepływu pracy.

Trzecie polecenie używa Get-Job polecenia cmdlet do pobrania LogflowJob zadania przepływu pracy. Dane wyjściowe pokazują, że wartość właściwości PSJobTypeName to PSWorkflowJob.

Czwarte polecenie używa Suspend-Job polecenia cmdlet do wstrzymania LogflowJob zadania. Zadanie jest uruchamiane w punkcie kontrolnym, a następnie zawiesza się.

#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

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

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

Pierwsze polecenie zawiesza zadanie LogWorkflowJob. Polecenie zwraca natychmiast. Dane wyjściowe pokazują, że zadanie przepływu pracy jest nadal uruchomione, mimo że jest zawieszone.

Drugie polecenie używa Get-Job polecenia cmdlet do pobrania zadania LogWorkflowJob. Dane wyjściowe pokazują, że zadanie przepływu pracy zostało pomyślnie zawieszone.

Trzecie polecenie używa Get-Job polecenia cmdlet do pobrania zadania LogWorkflowJob i Resume-Job polecenia cmdlet w celu wznowienia go. Dane wyjściowe pokazują, że zadanie przepływu pracy zostało wznowione pomyślnie i jest teraz uruchomione.

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

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

Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

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

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

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

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

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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.

Typ:Hashtable
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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 wstrzymanie go. Tego parametru można również użyć do wstrzymania zadań przepływu pracy, które nie mają punktów kontrolnych.

Typ:SwitchParameter
Aliasy:F
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych: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 Get-Job polecenia cmdlet .

Typ:Int32[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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.

Typ:Guid[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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. Możesz również przekazać zadania przepływu pracy potoku Suspend-Job do polecenia cmdlet.

Typ:Job[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych: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.

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-State

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

  • Nierozpoczęte
  • Uruchomiono
  • Ukończone
  • Niepowodzenie
  • Zatrzymana
  • Zablokowano
  • Suspended
  • Odłączony
  • Zawieszanie
  • Zatrzymywanie

Suspend-Job Zawiesza tylko zadania przepływu pracy w stanie Uruchomiony .

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

Typ:JobState
Dopuszczalne wartości:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Wait

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

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

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

Job

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

Dane wyjściowe

Job

To polecenie cmdlet zwraca wstrzymane zadania.

Uwagi

Program Windows PowerShell zawiera następujące aliasy dla programu Suspend-Job:

  • sujb

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 znajduje się w stanie Uruchomiono, Suspend-Job zostanie wyświetlony komunikat ostrzegawczy. Aby pominąć ostrzeżenie, użyj wspólnego parametru WarningAction z wartością SilentlyContinue.

Jeśli zadanie nie jest typu obsługującego wstrzymanie, Suspend-Job 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 Get-Job State polecenia cmdlet, 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.