Freigeben über


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-WorkflowSie 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

Job

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.