Resume-Job
Startet einen angehaltenen Auftrag neu.
Syntax
Resume-Job
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Job] <Job[]>
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Resume-Job
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Das Resume-Job
Cmdlet setzt einen angehaltenen Workflowauftrag fort, z. B. mithilfe des Suspend-Job
Cmdlets oder der about_Suspend-Workflow-Aktivität . Wenn ein Workflowauftrag fortgesetzt wird, rekonstruiert das Auftragsmodul den Zustand, metadaten und die Ausgabe aus gespeicherten Ressourcen, z. B. Prüfpunkten. Der Auftrag wird ohne Verlust des Zustands oder der Daten neu gestartet.
Der Auftragsstatus wird von "Suspended " in "Running" geändert.
Verwenden Sie die Parameter zum Auswählen von Resume-Job
Aufträgen nach Name, ID, Instanz-ID oder Pipe eines Auftragsobjekts, z. B. eines, das Get-Job
vom Cmdlet zurückgegeben wird, an Resume-Job
. Um einen fortzusetzenden Auftrag auszuwählen, können Sie auch einen Eigenschaftenfilter verwenden.
Gibt standardmäßig Resume-Job
sofort zurück, auch wenn möglicherweise noch nicht alle Aufträge fortgesetzt werden. Um die Eingabeaufforderung zu unterdrücken, bis alle angegebenen Aufträge fortgesetzt werden, verwenden Sie den Wait-Parameter .
Das Resume-Job
Cmdlet funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge. Es funktioniert nicht für Standardhintergrundaufträge, z. B. für die, die mit dem Start-Job
Cmdlet gestartet werden. Wenn Sie einen Auftrag eines nicht unterstützten Typs übermitteln, Resume-Job
wird ein Beendigungsfehler generiert und die Ausführung beendet.
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 Resume-Job
Cmdlet unterstützt, finden Sie in den Hilfethemen für den benutzerdefinierten Auftragstyp.
Bevor Sie ein Auftrags-Cmdlet für einen benutzerdefinierten Auftragstyp verwenden, importieren Sie das Modul, das den benutzerdefinierten Auftragstyp unterstützt, entweder mithilfe des Import-Module
Cmdlets oder Abrufen oder Verwenden eines Cmdlets im Modul.
Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.
Beispiele
Beispiel 1: Fortsetzen eines Auftrags nach ID
Die Befehle in diesem Beispiel prüfen, ob es sich bei dem Auftrag um einen angehaltenen Workflowauftrag handelt, und setzen den Auftrag anschließend fort. Der erste Befehl verwendet das Get-Job
Cmdlet, um den Auftrag abzurufen. Die Ausgabe zeigt, dass der Auftrag ein angehaltener Workflowauftrag ist. Der zweite Befehl verwendet den Id-Parameter des Resume-Job
Cmdlets, um den Auftrag mit dem ID-Wert 4 fortzusetzen.
PS C:\> Get-Job EventJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 EventJob PSWorkflowJob Suspended True Server01 \\Script\Share\Event.ps1
PS C:\> Resume-Job -Id 4
Beispiel 2: Fortsetzen eines Auftrags anhand des Namens
Dieser Befehl verwendet den Parameter Name , um mehrere Workflowaufträge auf dem lokalen Computer fortzusetzen.
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*
Beispiel 3: Verwenden von benutzerdefinierten Eigenschaftswerten
Dieser Befehl verwendet den Wert einer benutzerdefinierten Eigenschaft, um den fortzusetzenden Workflowauftrag zu identifizieren. Er verwendet den Parameter "Filter ", um den Workflowauftrag anhand seiner CustomID-Eigenschaft zu identifizieren. Außerdem wird der Parameter State verwendet, um zu überprüfen, ob der Workflowauftrag angehalten wird, bevor er versucht, ihn fortzusetzen.
PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended
Beispiel 4: Fortsetzen aller angehaltenen Aufträge auf einem Remotecomputer
Mit diesem Befehl werden alle angehaltenen Aufträge auf dem Remotecomputer „Srv01“ fortgesetzt.
PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}
Der Befehl verwendet das Invoke-Command
Cmdlet, um einen Befehl auf dem Srv01-Computer auszuführen. Der Remotebefehl verwendet den Parameter "State" des Get-Job
Cmdlets, um alle angehaltenen Aufträge auf dem Computer abzurufen. Ein Pipelineoperator (|
) sendet die angehaltenen Aufträge an das Resume-Job
Cmdlet, das sie fortsetzt.
Beispiel 5: Warten, bis Aufträge fortgesetzt werden
Dieser Befehl verwendet den Wait-Parameter , um nur Resume-Job
zurückzugeben, nachdem alle angegebenen Aufträge fortgesetzt wurden. Der Wait-Parameter ist besonders nützlich in Skripts, die davon ausgehen, dass Aufträge fortgesetzt werden, bevor das Skript fortgesetzt wird.
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait
Beispiel 6: Fortsetzen eines Workflows, der sich selbst anhält
Dieses Codebeispiel zeigt die Suspend-Workflow
Aktivität in einem Workflow.
Der Test-Suspend
Workflow auf dem Server01-Computer. Wenn Sie den Workflow ausführen, führt der Workflow die Get-Date
Aktivität aus und speichert das Ergebnis in der $a
Variablen. Anschließend wird die Suspend-Workflow
Aktivität ausgeführt. Als Reaktion nimmt er einen Prüfpunkt an, hält den Workflow an und gibt ein Workflowauftragsobjekt zurück. Suspend-Workflow
gibt ein Workflowauftragsobjekt zurück, auch wenn der Workflow nicht explizit als Auftrag ausgeführt wird.
Resume-Job
setzt den Test-Suspend
Workflow in Job8 fort. Er verwendet den Wait-Parameter , um die Eingabeaufforderung zu halten, bis der Auftrag fortgesetzt wird.
Das Receive-Job
Cmdlet ruft die Ergebnisse des Test-Suspend
Workflows ab. Der letzte Befehl im Workflow gibt ein TimeSpan -Objekt zurück, das die verstrichene Zeit zwischen dem aktuellen Datum und der Uhrzeit und dem Datum und der Uhrzeit darstellt, die in der $a
Variablen gespeichert wurde, bevor der Workflow angehalten wurde.
#SampleWorkflow
Workflow Test-Suspend
{
$a = Get-Date
Suspend-Workflow
(Get-Date)- $a
}
PS C:\> Test-Suspend -PSComputerName Server01
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Suspended True Server01 Test-Suspend
PS C:\> Resume-Job -Name "Job8" -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
8 Job8 PSWorkflowJob Running True Server01 Test-Suspend
PS C:\> Receive-Job -Name Job8
Days : 0
Hours : 0
Minutes : 0
Seconds : 19
Milliseconds : 823
Ticks : 198230041
TotalDays : 0.000229432917824074
TotalHours : 0.00550639002777778
TotalMinutes : 0.330383401666667
TotalSeconds : 19.8230041
TotalMilliseconds : 19823.0041
PSComputerName : Server01
Mit dem Resume-Job
Cmdlet können Sie einen Workflowauftrag fortsetzen, der mithilfe der Suspend-Workflow
Aktivität angehalten wurde. Diese Aktivität hält einen Workflow innerhalb eines Workflows an. Die Aktivität ist nur in Workflows gültig.
Weitere Informationen finden Suspend-Workflow
Sie unter about_Suspend-Workflow](.). /PSWorkflow/about/about_Suspend-Workflow.md).
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 setzt Aufträge fort, die alle Bedingungen in der Hashtabelle 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 |
-Id
Gibt ein Array von IDs für Aufträge an, die von diesem Cmdlet fortgesetzt werden.
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. Um die ID eines Auftrags zu finden, führen Sie den Befehl aus Get-Job
.
Typ: | Int32[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-InstanceId
Gibt ein Array von Instanz-IDs von Aufträgen an, die von diesem Cmdlet fortgesetzt werden. Standardmäßig werden alle Aufträge fortgesetzt.
Eine Instanz-ID ist eine GUID, die den Auftrag auf dem Computer eindeutig identifiziert. Führen Sie die Ausführung aus Get-Job
, um die Instanz-ID eines Auftrags zu finden.
Typ: | Guid[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Job
Gibt die fortzusetzenden Aufträge an. Geben Sie eine Variable ein, die entweder die Aufträge oder einen Befehl enthält, durch den die Aufträge abgerufen werden. Sie können auch Aufträge an das Resume-Job
Cmdlet weiterleiten.
Typ: | Job[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt ein Array von Anzeigenamen von Aufträgen an, die von diesem Cmdlet fortgesetzt werden. Geben Sie mindestens einen Auftragsnamen ein. Platzhalterzeichen sind zulässig.
Typ: | String[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-State
Gibt den Status von Aufträgen an, die fortgesetzt werden sollen. Zulässige Werte für diesen Parameter:
- NotStarted
- Wird ausgeführt
- Abgeschlossen
- Fehler
- Beendet
- Blockiert
- Ausgesetzt
- Getrennt
- Wird angehalten
- Wird beendet
Dieses Cmdlet setzt nur Aufträge im Angehaltenen Zustand fort.
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 alle Auftragsergebnisse neu gestartet werden. Standardmäßig gibt dieses Cmdlet sofort die verfügbaren Ergebnisse zurück.
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 Resume-Job
ein Auftrag eines nicht unterstützten Typs zurückgegeben wird, wird ein Beendigungsfehler zurückgegeben.
Ausgaben
None, System.Management.Automation.Job
Dieses Cmdlet gibt die Aufträge zurück, die sie fortsetzen versucht, wenn Sie den PassThru-Parameter verwenden. Andernfalls wird von diesem Cmdlet keine Ausgabe generiert.
Hinweise
Windows PowerShell enthält die folgenden Aliase für Resume-Job
:
rujb
Resume-Job
Nur angehaltene Aufträge können fortgesetzt werden. Wenn Sie einen Auftrag in einem anderen Zustand übermitteln,Resume-Job
wird der Fortsetzungsvorgang für den Auftrag ausgeführt, generiert jedoch eine Warnung, um Sie darüber zu informieren, dass der Auftrag nicht fortgesetzt werden konnte. Verwenden Sie den allgemeinen WarningAction-Parameter mit dem Wert "SilentlyContinue", um die Warnung zu unterdrücken.Wenn ein Auftrag kein Typ ist, der die Fortsetzung unterstützt, z. B. ein Workflowauftrag (PSWorkflowJob),
Resume-Job
gibt einen Beendigungsfehler zurück.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 Flatfile-Speicher gespeichert, können aber auch in einer SQL-Datenbank gespeichert werden.
Wenn Sie einen Auftrag fortsetzen, ändert sich der Auftragsstatus von "Angehalten " in "Ausgeführt". Verwenden Sie den Parameter "State" des
Get-Job
Cmdlets, um die ausgeführten Aufträge zu finden, einschließlich der Aufträge, die von diesem Cmdlet fortgesetzt wurden.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.