Suspend-Job

Syntax

SessionIdParameterSet (Standard)

Suspend-Job
    [-Id] <Int32[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Suspend-Job
    [-Job] <Job[]>
    [-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>]

NameParameterSet

Suspend-Job
    [-Name] <String[]>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Suspend-Job
    [-State] <JobState>
    [-Force]
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Beschreibung

Mit dem Cmdlet Suspend-Job werden Workflowaufträge angehalten (vorübergehend unterbrochen oder angehalten). 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 nach dem Wert PSWorkflowJob- in der PSJobTypeName Eigenschaft des Auftrags. 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 der Anhalten abgeschlossen ist, bevor Sie den Auftrag abrufen, verwenden Sie den Wait-Parameter von Suspend-Job oder das Cmdlet Wait-Job. Wenn der Workflowauftrag angehalten wird, lautet der Wert der State-Eigenschaft des Auftrags Suspended.

Das Anhalten basiert auf Prüfpunkten. Der aktuelle Auftragsstatus, die Metadaten und die Ausgabe werden im Prüfpunkt gespeichert, sodass der Workflowauftrag ohne Status- oder Datenverlust fortgesetzt werden kann. Wenn der Workflow-Auftrag keine Prüfpunkte hat, 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 Force verwenden, um jeden Workflowauftrag sofort anzuhalten und einen Workflowauftrag anzuhalten, der keine Prüfpunkte aufweist, aber die Aktion kann zu einem Zustands- und Datenverlust führen.

Hinweis: Bevor Sie ein Job-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 Cmdlets Import-Module oder mithilfe eines Cmdlets im Modul.

Beispiele

Beispiel 1: Anhalten eines Workflowauftrags anhand des Namens

The first command creates the Get-SystemLog workflow. The workflow uses the CheckPoint-Workflow activity to define a checkpoint in the workflow.
#Sample Workflow
Workflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

The second command uses the **AsJob** parameter that is common to all workflows to run the Get-SystemLog workflow as a background job. The command uses the **JobName** workflow common parameter to specify a friendly name for the workflow job.
PS C:\> Get-SystemLog -AsJob -JobName Get-SystemLogJob

The third command uses the Get-Job cmdlet to get the Get-SystemLogJob workflow job. The output shows that the value of the **PSJobTypeName** property is **PSWorkflowJob**.
PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

The fourth command uses the **Suspend-Job** cmdlet to suspend the Get-SystemLogJob job. The job runs to the checkpoint and then suspends.
PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Suspended   True            localhost   Get-SystemLog

In diesem Beispiel wird gezeigt, wie Ein Workflowauftrag angehalten wird.

Beispiel 2: Anhalten und Fortsetzen eines Workflowauftrags

The first command suspends the LogWorkflowJob job.The command returns immediately. The output shows that the workflow job is still running, even though it is in the process of being suspended..
PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

The second command uses the Get-Job cmdlet to get the LogWorkflowJob job. The output shows that the workflow job suspended successfully.
PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

The third command uses the **Get-Job** cmdlet to get the LogWorkflowJob job and the Resume-Job cmdlet to resume it. The output shows that the workflow job resumed successfully and is now running.
PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

In diesem Beispiel wird gezeigt, wie Sie einen Workflowauftrag anhalten und fortsetzen.

Beispiel 3: Anhalten eines Workflowauftrags auf einem Remotecomputer

PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

Mit diesem Befehl wird das Cmdlet Invoke-Command verwendet, um einen Workflowauftrag auf dem Remotecomputer Srv01 anzuhalten. Der Wert des Parameters Filters ist eine Hashtabelle, die einen CustomID-Wert angibt. Diese CustomID- ist Auftragsmetadaten (PSPrivateMetadata).

Beispiel 4: Warten, bis der Workflowauftrag angehalten wurde

PS C:\> 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 bis zum nächsten Prüfpunkt ausgeführt wird und angehalten wird, wird der Befehl abgeschlossen und das Auftragsobjekt zurückgegeben.

Beispiel 5: Erzwingen des Anhaltens eines Workflowauftrags

PS C:\> Suspend-Job Maintenance -Force

Dieser Befehl hält den Wartungsworkflowauftrag forcibly an. Der Wartungsauftrag verfügt nicht über Prüfpunkte, sodass er nicht ordnungsgemäß angehalten werden kann und möglicherweise nicht ordnungsgemäß fortgesetzt wird.

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

Hält nur Workflowaufträge an, die alle in der zugeordneten Hashtabelle festgelegten Bedingungen erfüllen. Geben Sie eine Hashtabelle ein, in der die Schlüssel die Eigenschaften des Workflowauftrags und die Werte die Eigenschaftswerte des Workflowauftrags sind.

Parametereigenschaften

Typ:Hashtable
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

FilterParameterSet
Position:1
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 von Status und Daten führen.

Standardmäßig lässt Suspend-Job den Workflowauftrag bis zum nächsten Prüfpunkt ausführen und hält ihn dann an. Sie können diesen Parameter auch verwenden, um Workflowaufträge anzusetzen, für die keine Prüfpunkte vorhanden sind.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
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

Hält die Workflowaufträge mit den angegebenen IDs an.

Die ID ist eine ganze Zahl, die den Auftrag innerhalb der aktuellen Sitzung eindeutig identifiziert. Sie ist einfacher zu merken und einzugeben als die Instanz-ID, aber sie ist nur innerhalb der aktuellen Sitzung eindeutig. Sie können eine oder mehrere IDs eingeben (durch Kommas getrennt). Um die ID eines Auftrags zu finden, verwenden Sie das Cmdlet Get-Job.

Parametereigenschaften

Typ:

Int32[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

SessionIdParameterSet
Position:1
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-InstanceId

Hält Workflowaufträge mit den angegebenen Instanz-IDs an. 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 suchen, verwenden Sie das Cmdlet Get-Job.

Parametereigenschaften

Typ:

Guid[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

InstanceIdParameterSet
Position:1
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 angehalten werden sollen. 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 über die Pipeline an das Cmdlet Suspend-Job übergeben.

Parametereigenschaften

Typ:

Job[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

JobParameterSet
Position:1
Obligatorisch:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Name

Hält Workflowaufträge mit den angegebenen Anzeigenamen an. Geben Sie einen oder mehrere Workflowauftragsnamen ein. Platzhalter werden unterstützt.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

NameParameterSet
Position:1
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-State

Hält nur die Workflowaufträge im angegebenen Zustand an. Gültige Werte sind NotStarted, Running, Completed, Failed, Stoped, Blocked, Suspended, Disconnected, Suspending, Stoping, Stopping but Suspend-Job hält nur Workflowaufträge im Status Running an.

Weitere Informationen zu Auftragszuständen finden Sie unter JobState Enumeration in der MSDN Library.

Parametereigenschaften

Typ:JobState
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

StateParameterSet
Position:1
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Wait

Gibt erst zurück, nachdem sich der Workflowauftrag im angehaltenen Zustand befindet. Standardmäßig wird Suspend-Job sofort angehalten, auch wenn sich der Workflowauftrag noch nicht im angehaltenen Zustand befindet.

Der Wait-Parameter entspricht dem Weiterleiten eines Suspend-Job-Befehls an das Cmdlet Wait-Job.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
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 über die Pipeline an Suspend-Job übergeben. Wenn Suspend-Job jedoch einen Auftrag eines nicht unterstützten Typs abruft, wird ein Beendigungsfehler ausgelöst.

Ausgaben

Job

Suspend-Job gibt die Aufträge zurück, die angehalten wurden.

Hinweise

  • 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 Status Wird ausgeführt befindet, zeigt Suspend-Job eine Warnmeldung an. Um die Warnung zu unterdrücken, verwenden Sie den allgemeinen Parameter WarningAction mit dem Wert SilentlyContinue.

    Wenn ein Auftrag nicht von einem Typ ist, der das Anhalten unterstützt, gibt Suspend-Job einen Beendigungsfehler aus.

  • Um die angehaltenen Workflowaufträge zu suchen, einschließlich derjenigen, die von diesem Cmdlet angehalten wurden, verwenden Sie den State-Parameter des Cmdlets Get-Job, um Workflowaufträge im Status Suspended abzurufen.