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>]
NameParameterSet
Suspend-Job
[-Name] <String[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Suspend-Job
[-InstanceId] <Guid[]>
[-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>]
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 niestandardowy typ zadania obsługuje polecenie cmdlet Suspend-Job, 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 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
W tym przykładzie pokazano, jak zawiesić zadanie przepływu pracy.
Pierwsze polecenie tworzy przepływ pracy Get-SystemLog. Przepływ pracy używa działania CheckPoint-Workflow 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 przepływu pracy Get-SystemLog jako zadania w tle. Polecenie używa wspólnego parametru JobName przepływu pracy, aby określić przyjazną nazwę zadania przepływu pracy.
Trzecie polecenie używa polecenia cmdlet Get-Job w celu pobrania zadania przepływu pracy LogflowJob. Dane wyjściowe pokazują, że wartość właściwości PSJobTypeName to PSWorkflowJob.
Czwarte polecenie używa polecenia cmdlet Suspend-Job do zawieszenia zadania LogflowJob. 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 polecenia cmdlet Get-Job w celu pobrania zadania LogWorkflowJob. Dane wyjściowe pokazują, że zadanie przepływu pracy zostało pomyślnie zawieszone.
Trzecie polecenie używa polecenia cmdlet Get-Job w celu pobrania zadania LogWorkflowJob i polecenia cmdlet Resume-Job 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 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
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
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 uruchamianie 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 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
Suspend-Job zawiesza tylko zadania przepływu pracy w stanie Uruchomione.
Aby uzyskać więcej informacji na temat stanów zadań, zobacz JobState Enumeration.
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 Suspend-Job zwraca natychmiast, nawet jeśli zadanie przepływu pracy nie jest jeszcze w stanie wstrzymania.
Parametr Wait jest odpowiednikiem 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
Program Windows PowerShell zawiera następujące aliasy dla 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 prześlesz zadanie przepływu pracy, które nie znajduje się w stanie Uruchomiono, Suspend-Job wyświetli komunikat ostrzegawczy. Aby pominąć ostrzeżenie, użyj WarningAction wspólnego parametru z wartością SilentlyContinue.
Jeśli zadanie nie jest typem obsługującym 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 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.