Suspend-Job
Beendet Workflowaufträge temporär.
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>]
Beschreibung
Das Suspend-Job
Cmdlet 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. Sie ergänzt die Suspend-Workflow-Aktivitäthttps://go.microsoft.com/fwlink/?LinkId=267141 , bei der es sich um einen Befehl im Workflow handelt, der den Workflow angehalten.
Das Suspend-Job
Cmdlet funktioniert nur für Workflowaufträge. Es funktioniert nicht für Standardhintergrundaufträge, z. B. für die, die mit dem Start-Job
Cmdlet gestartet werden.
Um einen Workflowauftrag zu identifizieren, suchen Sie in der PSJobTypeName-Eigenschaft des Auftrags nach einem Wert von PSWorkflowJob. Informationen dazu, ob ein bestimmter benutzerdefinierter Auftragstyp das Suspend-Job
Cmdlet unterstützt, finden Sie in den Hilfethemen für den benutzerdefinierten Auftragstyp.
Wenn Sie einen Workflowauftrag anhalten, wird er bis zum 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 Wait-Parameter oder Suspend-Job
das Wait-Job
Cmdlet. Wenn der Workflowauftrag angehalten wird, wird der Wert der Statuseigenschaft des Auftrags angehalten.
Das korrekte Anhalten ist von Prüfpunkten abhängig. 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. Zum Hinzufügen von Prüfpunkten zu einem workflow, den Sie ausführen, verwenden Sie den allgemeinen PSPersist-Workflowparameter . Sie können den Parameter Force verwenden, um jeden Workflowauftrag sofort anzusetzen und einen Workflowauftrag anzusetzen, der keine Prüfpunkte enthält, die Aktion jedoch zu Einem Verlust des Zustands und der Daten führen kann.
Bevor Sie ein Auftrags-Cmdlet für einen benutzerdefinierten Auftragstyp verwenden, z. B. einen Workflowauftrag (PSWorkflowJob), importieren Sie das Modul, das den benutzerdefinierten Auftragstyp unterstützt, entweder mithilfe des Import-Module
Cmdlets oder mithilfe 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 veranschaulicht, 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 AsJob-Parameter, der für alle Workflows verwendet wird, um den Get-SystemLog
Workflow als Hintergrundauftrag auszuführen. Der Befehl verwendet den allgemeinen Parameter "JobName ", um einen Anzeigenamen für den Workflowauftrag anzugeben.
Der dritte Befehl verwendet das Get-Job
Cmdlet, um den LogflowJob
Workflowauftrag abzurufen. Die Ausgabe zeigt, dass der Wert der PSJobTypeName-Eigenschaft PSWorkflowJob ist.
Der vierte Befehl verwendet das Suspend-Job
Cmdlet, 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 veranschaulicht, wie ein Workflowauftrag angehalten und fortgesetzt wird.
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 Get-Job
Cmdlet, um den LogWorkflowJob-Auftrag abzurufen. Die Ausgabe zeigt, dass der Workflowauftrag erfolgreich angehalten wurde.
Der dritte Befehl verwendet das Get-Job
Cmdlet zum Abrufen des LogWorkflowJob-Auftrags und des Resume-Job
Cmdlets, 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 Invoke-Command
Cmdlet, um einen Workflowauftrag auf dem Srv01-Remotecomputer anzusetzen. Der Wert des Filters-Parameters 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
Dieser Befehl hält den VersionCheck-Workflowauftrag an. 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 erzwingt das Anhalten des Maintenance-Workflowauftrags Der Wartungsauftrag enthält keine Prüfpunkte. Sie kann nicht ordnungsgemäß angehalten werden und wird möglicherweise nicht ordnungsgemäß fortgesetzt.
Parameter
-Confirm
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Typ: | Hashtable |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Force
Hält den Workflowauftrag sofort an. Diese Aktion kann zu einem Verlust des Zustands und der Daten führen.
Suspend-Job
Standardmäßig kann der Workflowauftrag bis zum nächsten Prüfpunkt ausgeführt und dann angehalten werden.
Mit diesem Parameter können Sie auch Workflowaufträge ohne Prüfpunkte anhalten.
Typ: | SwitchParameter |
Aliase: | F |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Id
Gibt die IDs von Aufträgen an, die dieses Cmdlet angehalten.
Die ID ist eine ganze Zahl, die den Auftrag 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 Get-Job
Cmdlet, um die ID eines Auftrags zu finden.
Typ: | Int32[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-InstanceId
Gibt die Instanz-IDs von Aufträgen an, die dieses Cmdlet angehalten. Standardmäßig werden alle Aufträge fortgesetzt.
Eine Instanz-ID ist eine GUID, die den Auftrag auf dem Computer eindeutig identifiziert. Verwenden Sie die Instanz-ID eines Auftrags, um Get-Job
die Instanz-ID eines Auftrags zu finden.
Typ: | Guid[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Job
Gibt die Workflowaufträge an, die dieses Cmdlet beendet. Geben Sie eine Variable ein, die die Workflowaufträge enthält, oder einen Befehl, der die Workflowaufträge abruft. Sie können Workflowaufträge auch an das Suspend-Job
Cmdlet weiterleiten.
Typ: | Job[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt Anzeigenamen von Aufträgen an, die dieses Cmdlet angehalten. Geben Sie einen oder mehrere Workflowauftragsnamen ein. Platzhalterzeichen werden unterstützt.
Typ: | String[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-State
Gibt einen Auftragsstatus an. Dieses Cmdlet stoppt nur Aufträge im angegebenen Zustand. Zulässige Werte für diesen Parameter:
- NotStarted
- Wird ausgeführt
- Abgeschlossen
- Fehler
- Beendet
- Blockiert
- Ausgesetzt
- Getrennt
- Wird angehalten
- Wird beendet
Suspend-Job
Hält nur Workflowaufträge im Zustand "Ausführen " an.
Weitere Informationen zu Auftragszuständen finden Sie unter JobState Enumeration.
Typ: | JobState |
Zulässige Werte: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Wait
Gibt an, dass dieses Cmdlet die Eingabeaufforderung unterdrückt, bis sich der Workflowauftrag im angehaltenen Zustand befindet. Gibt standardmäßig Suspend-Job
sofort zurück, auch wenn sich der Workflowauftrag noch nicht im angehaltenen Zustand befindet.
Der Wait-Parameter entspricht dem Weiterleiten eines Suspend-Job
Befehls an das Wait-Job
Cmdlet.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
Sie können alle Arten von Aufträgen an dieses Cmdlet weiterleiten. Wenn Suspend-Job
jedoch ein Auftrag eines nicht unterstützten Typs zurückgegeben wird, wird ein Beendigungsfehler zurückgegeben.
Ausgaben
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 für einen angehaltenen Auftrag können je nach Auftragstyp unterschiedlich sein. Beispielsweise werden angehaltene Workflowaufträge standardmäßig in einem Flatfilespeicher gespeichert, sie können jedoch auch in einer Datenbank gespeichert werden.
Wenn Sie einen Workflowauftrag übermitteln, der sich nicht im Zustand "Ausführen" befindet, Suspend-Job
wird eine Warnmeldung angezeigt. Verwenden Sie den allgemeinen WarningAction-Parameter mit dem Wert "SilentlyContinue", um die Warnung zu unterdrücken.
Wenn ein Auftrag nicht vom Typ ist, der das Anhalten unterstützt, Suspend-Job
wird ein Beendigungsfehler zurückgegeben.
Um die angehaltenen Workflowaufträge zu finden, einschließlich derer, die von diesem Cmdlet angehalten wurden, verwenden Sie den Parameter "State" des Get-Job
Cmdlets, um Workflowaufträge im Angehaltenen Zustand abzurufen.
Einige Auftragstypen verfügen über Optionen oder Eigenschaften, die das Anhalten des Auftrags durch Windows PowerShell verhindern. Wenn versucht wird, den Auftrag anzusetzen, stellen Sie sicher, dass die Auftragsoptionen und -eigenschaften das Anhalten zulassen.