Suspend-Job
Beendet vorübergehend Workflowaufträge.
Syntax
SessionIdParameterSet (Standard)
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>]
Beschreibung
Das cmdlet Suspend-Job hält Workflowaufträge an. "Anhalten" bedeutet, einen Workflowauftrag vorübergehend zu unterbrechen oder anzuhalten. Mit diesem Cmdlet können Benutzer, die Workflows ausführen, den Workflow anhalten. Er ergänzt die Aktivität "Suspend-Workflow"https://go.microsoft.com/fwlink/?LinkId=267141, bei der es sich um einen Befehl im Workflow handelt, der den Workflow angehalten.
Das Cmdlet Suspend-Job funktioniert nur für Workflowaufträge. Es funktioniert nicht für Standard-Hintergrundaufträge, z. B. die, die mit dem Cmdlet Start-Job gestartet werden.
Um einen Workflowauftrag zu identifizieren, suchen Sie im PSJobTypeName Eigenschaft des Auftrags nach einem Wert von PSWorkflowJobJob. Informationen dazu, ob ein bestimmter benutzerdefinierter Auftragstyp das cmdlet Suspend-Job unterstützt, finden Sie in den Hilfethemen für den benutzerdefinierten Auftragstyp.
Wenn Sie einen Workflowauftrag anhalten, wird der Workflowauftrag an den nächsten Prüfpunkt ausgeführt, angehalten und gibt sofort ein Workflowauftragsobjekt zurück. Wenn Sie warten möchten, bis das Anhalten abgeschlossen ist, bevor Sie den Auftrag abrufen, verwenden Sie den Parameter Wait von Suspend-Job oder das Cmdlet Wait-Job. Wenn der Workflowauftrag angehalten wird, wird der Wert der State-Eigenschaft des Auftrags angehalten.
Das Anhalten basiert auf Prüfpunkten. Der aktuelle Auftragsstatus, Metadaten und die Ausgabe werden im Prüfpunkt gespeichert, sodass der Workflowauftrag ohne Verlust des Zustands oder der Daten fortgesetzt werden kann. Wenn der Workflowauftrag keine Prüfpunkte enthält, kann er nicht ordnungsgemäß angehalten werden. Verwenden Sie zum Hinzufügen von Prüfpunkten zu einem workflow, den Sie ausführen, den PSPersist allgemeinen Workflowparameter. Sie können den Parameter "Erzwingen" verwenden, um jeden Workflowauftrag sofort anzusetzen und einen Workflowauftrag anzusetzen, der keine Prüfpunkte enthält, aber die Aktion kann zu Einem Verlust des Zustands und der Daten führen.
Bevor Sie ein Cmdlet "Auftrag" für einen benutzerdefinierten Auftragstyp verwenden, z. B. einen Workflowauftrag (PSWorkflowJob), importieren Sie das Modul, das den benutzerdefinierten Auftragstyp unterstützt, entweder mithilfe des cmdlets Import-Module oder mithilfe eines Cmdlets im Modul.
Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.
Beispiele
Beispiel 1: Anhalten eines Workflowauftrags anhand des Namens
In diesem Beispiel wird gezeigt, wie Ein Workflowauftrag angehalten wird.
Der erste Befehl erstellt den Get-SystemLog-Workflow. Der Workflow verwendet die CheckPoint-Workflow-Aktivität, um einen Prüfpunkt im Workflow zu definieren.
Der zweite Befehl verwendet den parameter AsJob, der allen Workflows gemeinsam ist, um den Get-SystemLog Workflow als Hintergrundauftrag auszuführen. Der Befehl verwendet den JobName allgemeinen Workflowparameter, um einen Anzeigenamen für den Workflowauftrag anzugeben.
Der dritte Befehl verwendet das Cmdlet Get-Job, um den LogflowJob Workflowauftrag abzurufen. Die Ausgabe zeigt, dass der Wert der PSJobTypeName-Eigenschaft PSWorkflowJob ist.
Der vierte Befehl verwendet das Cmdlet Suspend-Job, um den LogflowJob Auftrag anzusetzen. Der Auftrag wird an den Prüfpunkt ausgeführt und dann angehalten.
#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
Beispiel 2: Anhalten und Fortsetzen eines Workflowauftrags
In diesem Beispiel wird gezeigt, wie Sie einen Workflowauftrag anhalten und fortsetzen.
Der erste Befehl hält den LogWorkflowJob-Auftrag an. Der Befehl wird sofort zurückgegeben. Die Ausgabe zeigt, dass der Workflowauftrag weiterhin ausgeführt wird, obwohl er angehalten wird.
Der zweite Befehl verwendet das cmdlet Get-Job, um den LogWorkflowJob-Auftrag abzurufen. Die Ausgabe zeigt, dass der Workflowauftrag erfolgreich angehalten wurde.
Der dritte Befehl verwendet das Cmdlet Get-Job, um den LogWorkflowJob-Auftrag und das cmdlet Resume-Job abzurufen, um ihn fortzusetzen. Die Ausgabe zeigt, dass der Workflowauftrag erfolgreich fortgesetzt wurde und jetzt ausgeführt wird.
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
Beispiel 3: Anhalten eines Workflowauftrags auf einem Remotecomputer
Invoke-Command -ComputerName Srv01 -ScriptBlock {Suspend-Job -Filter @{CustomID="031589"}
Dieser Befehl verwendet das Cmdlet Invoke-Command, um einen Workflowauftrag auf dem Remotecomputer Srv01 anzusetzen. Der Wert des parameters Filter ist eine Hashtabelle, die einen CustomID-Wert angibt.
Diese CustomID- ist Auftragsmetadaten (PSPrivateMetadata).
Beispiel 4: Warten, bis der Workflowauftrag angehalten wurde
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Mit diesem Befehl wird der Workflowauftrag "VersionCheck" angehalten. Der Befehl verwendet den Parameter Wait, um zu warten, bis der Workflowauftrag angehalten wurde. Wenn der Workflowauftrag zum nächsten Prüfpunkt ausgeführt und angehalten wird, wird der Befehl beendet und gibt das Auftragsobjekt zurück.
Beispiel 5: Erzwingen des Anhaltens eines Workflowauftrags
Suspend-Job Maintenance -Force
Dieser Befehl hält den Wartungsworkflowauftrag forcibly an. Der Wartungsauftrag enthält keine Prüfpunkte. Sie kann nicht ordnungsgemäß angehalten werden und wird möglicherweise nicht ordnungsgemäß fortgesetzt.
Parameter
-Confirm
Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | vgl |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Filter
Gibt eine Hashtabelle mit Bedingungen an. Dieses Cmdlet hält Aufträge an, die alle Bedingungen erfüllen. Geben Sie eine Hashtabelle ein, in der die Schlüssel Auftragseigenschaften und die Werte Werte der Auftragseigenschaften sind.
Parametereigenschaften
| Typ: | Hashtable |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
FilterParameterSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Force
Hält den Workflowauftrag sofort an. Diese Aktion kann zu einem Verlust des Zustands und der Daten führen.
Standardmäßig können Suspend-Job den Workflowauftrag bis zum nächsten Prüfpunkt ausführen und dann angehalten.
Sie können diesen Parameter auch verwenden, um Workflowaufträge anzusetzen, für die keine Prüfpunkte vorhanden sind.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | F |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-Id
Gibt die IDs von Aufträgen an, die dieses Cmdlet angehalten.
Die ID ist eine ganze Zahl, die den Job in der aktuellen Sitzung eindeutig identifiziert. Es ist einfacher zu merken und als die Instanz-ID einzugeben, aber sie ist nur in der aktuellen Sitzung eindeutig. Sie können eine oder mehrere IDs eingeben, getrennt durch Kommas. Verwenden Sie das Cmdlet Get-Job, um die ID eines Auftrags zu finden.
Parametereigenschaften
| Typ: | Int32[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
SessionIdParameterSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-InstanceId
Gibt die Instanz-IDs von Aufträgen an, die dieses Cmdlet angehalten. Die Standardeinstellung ist "alle Aufträge".
Eine Instanz-ID ist eine GUID, die den Auftrag auf dem Computer eindeutig identifiziert. Um die Instanz-ID eines Auftrags zu finden, verwenden Sie Get-Job.
Parametereigenschaften
| Typ: | Guid[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
InstanceIdParameterSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Job
Gibt die Workflowaufträge an, die dieses Cmdlet beendet. Geben Sie eine Variable ein, die die Workflowaufträge oder einen Befehl enthält, der die Workflowaufträge abruft. Sie können Workflowaufträge auch an das Cmdlet Suspend-Job weiterleiten.
Parametereigenschaften
| Typ: | Job[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
JobParameterSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | True |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Name
Gibt Anzeigenamen von Aufträgen an, die dieses Cmdlet angehalten. Geben Sie einen oder mehrere Workflowauftragsnamen ein. Wildcardzeichen werden unterstützt.
Parametereigenschaften
| Typ: | String[] |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
NameParameterSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-State
Gibt einen Jobstatus an. Dieses Cmdlet stoppt nur Aufträge im angegebenen Zustand. Die zulässigen Werte für diesen Parameter sind:
- Nicht gestartet
- Laufen
- Abgeschlossen
- gescheitert
- Angehalten
- Gesperrt
- Suspendiert
- Getrennt
- Anhalten
- Anhalten
Suspend-Job hält nur Workflowaufträge im Zustand Ausführen an.
Weitere Informationen über den Status von Jobs finden Sie unter JobState Auflistung.
Parametereigenschaften
| Typ: | JobState |
| Standardwert: | None |
| Zulässige Werte: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
StateParameterSet
| Position: | 0 |
| Obligatorisch: | True |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | True |
| Wert aus verbleibenden Argumenten: | False |
-Wait
Gibt an, dass dieses Cmdlet die Eingabeaufforderung unterdrückt, bis sich der Workflowauftrag im angehaltenen Zustand befindet. Standardmäßig wird Suspend-Job sofort zurückgegeben, auch wenn sich der Workflowauftrag noch nicht im angehaltenen Zustand befindet.
Der Parameter Wait entspricht dem Weiterleiten eines Suspend-Job Befehls an das Cmdlet Wait-Job.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | None |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
-WhatIf
Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Parametereigenschaften
| Typ: | SwitchParameter |
| Standardwert: | False |
| Unterstützt Platzhalter: | False |
| Nicht anzeigen: | False |
| Aliase: | Wi |
Parametersätze
(All)
| Position: | Named |
| Obligatorisch: | False |
| Wert aus Pipeline: | False |
| Wert aus Pipeline nach dem Eigenschaftsnamen: | False |
| Wert aus verbleibenden Argumenten: | False |
CommonParameters
Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.
Eingaben
Job
Sie können alle Arten von Aufträgen an dieses Cmdlet weiterleiten. Wenn Suspend-Job jedoch einen Auftrag eines nicht unterstützten Typs abruft, wird ein Beendigungsfehler zurückgegeben.
Ausgaben
Job
Dieses Cmdlet gibt die Aufträge zurück, die angehalten wurden.
Hinweise
Windows PowerShell enthält die folgenden Aliase für Suspend-Job:
sujb
Der Mechanismus und der Speicherort zum Speichern eines angehaltenen Auftrags können je nach Auftragstyp variieren. Beispielsweise werden angehaltene Workflowaufträge standardmäßig in einem Flachdateispeicher gespeichert, können aber auch in einer Datenbank gespeichert werden.
Wenn Sie einen Workflowauftrag übermitteln, der sich nicht im Zustand "Ausgeführt" befindet, zeigt Suspend-Job eine Warnmeldung an. Verwenden Sie zum Unterdrücken der Warnung den WarningAction allgemeinen Parameter mit dem Wert "SilentlyContinue".
Wenn ein Auftrag nicht vom Typ ist, der das Anhalten unterstützt, gibt Suspend-Job einen Beendigungsfehler zurück.
Um die angehaltenen Workflowaufträge zu finden, einschließlich derer, die von diesem Cmdlet angehalten wurden, verwenden Sie den Parameter State des Cmdlets Get-Job, um Workflowaufträge im Angehaltenen Zustand abzurufen.
Einige Auftragstypen verfügen über Optionen oder Eigenschaften, die verhindern, dass Windows PowerShell den Auftrag angehalten. Wenn versucht wird, den Auftrag anzusetzen, stellen Sie sicher, dass die Auftragsoptionen und -eigenschaften das Anhalten zulassen.