Freigeben über


Resume-Job

Startet einen angehaltenen Auftrag neu.

Syntax

SessionIdParameterSet (Standard)

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

JobParameterSet

Resume-Job
    [-Job] <Job[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

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

InstanceIdParameterSet

Resume-Job
    [-InstanceId] <Guid[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

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

FilterParameterSet

Resume-Job
    [-Filter] <Hashtable>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Beschreibung

Das cmdlet Resume-Job setzt einen angehaltenen Workflowauftrag fort, z. B. mithilfe des Cmdlets Suspend-Job 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 Runninggeändert.

Verwenden Sie die Parameter Resume-Job, um Aufträge nach Name, ID, Instanz-ID oder Pipe eines Auftragsobjekts auszuwählen, z. B. eines, das vom Cmdlet Get-Job zurückgegeben wird, um Resume-Job. Sie können auch einen Eigenschaftenfilter verwenden, um einen Auftrag auszuwählen, der fortgesetzt werden soll.

Standardmäßig wird Resume-Job sofort zurückgegeben, obwohl alle Aufträge möglicherweise noch nicht fortgesetzt werden. Um die Eingabeaufforderung zu unterdrücken, bis alle angegebenen Aufträge fortgesetzt werden, verwenden Sie den Parameter Wait.

Das cmdlet Resume-Job funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge. Es funktioniert nicht für Standard-Hintergrundaufträge, z. B. die, die mit dem Cmdlet Start-Job gestartet werden. Wenn Sie einen Auftrag eines nicht unterstützten Typs übermitteln, generiert Resume-Job einen Beendigungsfehler und beendet die Ausführung.

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 Resume-Job 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 cmdlets Import-Module oder abrufen oder verwenden sie ein Cmdlet im Modul.

Dieses Cmdlet wurde in Windows PowerShell 3.0 eingeführt.

Beispiele

Beispiel 1: Fortsetzen eines Auftrags nach ID

The first command uses the **Get-Job** cmdlet to get the job. The output shows that the job is a suspended workflow job.
PS C:\> Get-Job EventJob
Id     Name            PSJobTypeName   State         HasMoreData     Location   Command
--     ----            -------------   -----         -----------     --------   -------
4      EventJob        PSWorkflowJob   Suspended     True            Server01   \\Script\Share\Event.ps1

The second command uses the *Id* parameter of the **Resume-Job** cmdlet to resume the job with an *Id* value of 4.
PS C:\> Resume-Job -Id 4

Die Befehle in diesem Beispiel stellen sicher, dass der Auftrag ein angehaltener Workflowauftrag ist, und setzen Sie den Auftrag dann fort.

Beispiel 2: Fortsetzen eines Auftrags anhand des Namens

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*

Dieser Befehl verwendet den Parameter Name, um mehrere Workflowaufträge auf dem lokalen Computer fortzusetzen.

Beispiel 3: Verwenden von benutzerdefinierten Eigenschaftswerten

PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended

Dieser Befehl verwendet den Wert einer benutzerdefinierten Eigenschaft, um den Workflowauftrag zu identifizieren, der fortgesetzt werden soll. 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.

Beispiel 4: Fortsetzen aller angehaltenen Aufträge auf einem Remotecomputer

PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}

Mit diesem Befehl werden alle angehaltenen Aufträge auf dem Remotecomputer Srv01 fortgesetzt.

Der Befehl verwendet das cmdlet Invoke-Command, um einen Befehl auf dem Srv01-Computer auszuführen. Der Remotebefehl verwendet den Parameter State des Cmdlets Get-Job, um alle angehaltenen Aufträge auf dem Computer abzurufen. Ein Pipelineoperator (|) sendet die angehaltenen Aufträge an das cmdlet Resume-Job, das sie fortsetzt.

Beispiel 5: Warten, bis Aufträge fortgesetzt werden

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait

Dieser Befehl verwendet den Parameter Wait, um Resume-Job- nur zurückzugeben, nachdem alle angegebenen Aufträge fortgesetzt wurden. Der parameter Wait ist besonders nützlich in Skripts, die davon ausgehen, dass Aufträge fortgesetzt werden, bevor das Skript fortgesetzt wird.

Beispiel 6: Fortsetzen eines Workflows, der sich selbst anhält

This code sample shows the **Suspend-Workflow** activity in a workflow.
#SampleWorkflow
Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

The following command runs the Test-Suspend workflow on the Server01 computer.When you run the workflow, the workflow runs the Get-Date activity and stores the result in the $a variable. Then it runs the Suspend-Workflow activity. In response, it takes a checkpoint, suspends the workflow, and returns a workflow job object.  Suspend-Workflow returns a workflow job object even if the workflow is not explicitly run as a job.
PS C:\> Test-Suspend -PSComputerName Server01
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Suspended     True            Server01             Test-Suspend

The following command resumes the Test-Suspend workflow in Job8. It uses the *Wait* parameter to hold the command prompt until the job is resumed.
PS C:\> Resume-Job -Name "Job8" -Wait
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command

--     ----            -------------   -----         -----------     --------             -------

8      Job8            PSWorkflowJob   Running       True            Server01             Test-Suspend

This command uses the **Receive-Job** cmdlet to get the results of the Test-Suspend workflow. The final command in the workflow returns a **TimeSpan** object that represents the elapsed time between the current date and time and the date and time that was saved in the $a variable before the workflow was suspended.
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 Cmdlet Resume-Job können Sie einen Workflowauftrag fortsetzen, der angehalten wurde, indem Sie die Aktivität "Suspend-Workflow" verwenden. Diese Aktivität hält einen Workflow innerhalb eines Workflows an. Sie ist nur in Workflows gültig.

Informationen zum Anhalteworkflow finden Sie unter about_Suspend-Workflow.

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

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

-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 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. Um die ID eines Auftrags zu finden, führen Sie Get-Jobaus.

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 ein Array von Instanz-IDs von Aufträgen an, die von diesem Cmdlet fortgesetzt werden. 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, führen Sie Get-Jobaus.

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 Aufträge an, die fortgesetzt werden sollen. 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 Aufträge auch an das Cmdlet Resume-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 ein Array von Anzeigenamen von Aufträgen an, die von diesem Cmdlet fortgesetzt werden. Geben Sie einen oder mehrere Auftragsnamen ein. Platzhalterzeichen sind zulässig.

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 den Status von Aufträgen an, die fortgesetzt werden sollen. Die zulässigen Werte für diesen Parameter sind:

  • Nicht gestartet
  • Laufen
  • Abgeschlossen
  • gescheitert
  • Angehalten
  • Gesperrt
  • Suspendiert
  • Getrennt
  • Anhalten
  • Anhalten

Dieses Cmdlet setzt nur Aufträge im Zustand Angehaltenen fort.

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

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 alle Auftragsergebnisse neu gestartet werden. Standardmäßig gibt dieses Cmdlet sofort die verfügbaren Ergebnisse zurück.

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 Resume-Job einen Auftrag eines nicht unterstützten Typs abruft, 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 parameter PassThru verwenden. Andernfalls generiert dieses Cmdlet keine Ausgabe.

Hinweise

  • Resume-Job- können nur angehaltene Aufträge fortsetzen. Wenn Sie einen Auftrag in einem anderen Zustand übermitteln, Resume-Job den Fortsetzungsvorgang auf dem Auftrag ausführt, generiert jedoch eine Warnung, um Sie darüber zu informieren, dass der Auftrag nicht fortgesetzt werden konnte. Verwenden Sie zum Unterdrücken der Warnung den WarningAction allgemeinen Parameter mit dem Wert "SilentlyContinue".
  • Wenn ein Auftrag kein Typ ist, der die Fortsetzung unterstützt, z. B. einen Workflowauftrag (PSWorkflowJob), gibt Resume-Job einen Beendigungsfehler zurück.
  • 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 SQL-Datenbank gespeichert werden.
  • Wenn Sie einen Auftrag fortsetzen, ändert sich der Auftragsstatus von Angehaltenen in Wird ausgeführt. Um die von diesem Cmdlet fortgesetzten Aufträge zu finden, verwenden Sie den Parameter State des Cmdlets Get-Job, um Aufträge im Zustand Ausführen 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.