Freigeben über


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.