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.