Resume-Job

Riavvia un processo sospeso.

Sintassi

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

Descrizione

Il Resume-Job cmdlet riprende un processo del flusso di lavoro sospeso, ad esempio usando il Suspend-Job cmdlet o l'attività about_Suspend-Workflow . Quando un processo del flusso di lavoro riprende, il motore del processo ricostruisce lo stato, i metadati e l'output delle risorse salvate, ad esempio i checkpoint. Il processo viene riavviato senza perdita di stato o dati. Lo stato del processo viene modificato da Sospeso a In esecuzione.

Usare i parametri di Resume-Job per selezionare i processi per nome, ID, ID istanza o inviare tramite pipe un oggetto processo, ad esempio quello restituito dal Get-Job cmdlet, a Resume-Job. È anche possibile usare un filtro di proprietà per selezionare un processo da riavviare.

Per impostazione predefinita, restituisce immediatamente, Resume-Job anche se tutti i processi potrebbero non essere ancora ripresi. Per eliminare il prompt dei comandi fino a quando non vengono ripresi tutti i processi specificati, usare il parametro Wait .

Il Resume-Job cmdlet funziona solo su tipi di processi personalizzati, ad esempio i processi del flusso di lavoro. Non funziona su processi in background standard, ad esempio quelli avviati usando il Start-Job cmdlet . Se si invia un processo di un tipo non supportato, Resume-Job genera un errore irreversibile e interrompe l'esecuzione.

Per identificare un processo del flusso di lavoro, cercare un valore di PSWorkflowJob nella proprietà PSJobTypeName del processo. Per determinare se un particolare tipo di processo personalizzato supporta il Resume-Job cmdlet, vedere gli argomenti della Guida per il tipo di processo personalizzato.

Prima di usare un cmdlet Job in un tipo di processo personalizzato, importare il modulo che supporta il tipo di processo personalizzato usando il Import-Module cmdlet o recuperando o usando un cmdlet nel modulo.

Questo cmdlet è stato introdotto in Windows PowerShell 3.0.

Esempio

Esempio 1: Riprendere un processo in base all'ID

I comandi in questo esempio verificano che il processo sia un processo del flusso di lavoro sospeso e quindi lo riavviano. Il primo comando usa il Get-Job cmdlet per ottenere il processo. L'output mostra che il processo è un processo del flusso di lavoro sospeso. Il secondo comando usa il parametro Id del Resume-Job cmdlet per riprendere il processo con un valore ID pari a 4.

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

Esempio 2: Riprendere un processo in base al nome

Questo comando usa il parametro Name per riprendere diversi processi del flusso di lavoro nel computer locale.

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

Esempio 3: Usare valori di proprietà personalizzati

Questo comando usa il valore di una proprietà personalizzata per identificare il processo del flusso di lavoro da riavviare. Usa il parametro Filter per identificare il processo del flusso di lavoro in base alla relativa proprietà CustomID . Usa anche il parametro State per verificare che il processo del flusso di lavoro sia sospeso, prima di provare a riprenderlo.

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

Esempio 4: Riprendere tutti i processi sospesi in un computer remoto

Questo comando riavvia tutti i processi sospesi nel computer remoto Srv01.

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

Il comando usa il Invoke-Command cmdlet per eseguire un comando nel computer Srv01. Il comando remoto usa il parametro State del Get-Job cmdlet per ottenere tutti i processi sospesi nel computer. Un operatore pipeline (|) invia i processi sospesi al Resume-Job cmdlet , che li riprende.

Esempio 5: Attendere la ripresa dei processi

Questo comando usa il parametro Wait per indirizzare Resume-Job la restituzione solo dopo la ripresa di tutti i processi specificati. Il parametro Wait è particolarmente utile negli script che presuppongono che i processi vengano ripresi prima che lo script continui.

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

Esempio 6: Riprendere un flusso di lavoro che si sospende

Questo esempio di codice mostra l'attività Suspend-Workflow in un flusso di lavoro.

Flusso Test-Suspend di lavoro nel computer Server01. Quando si esegue il flusso di lavoro, il flusso di lavoro esegue l'attività Get-Date e archivia il risultato nella $a variabile. Esegue quindi l'attività Suspend-Workflow . In risposta, accetta un checkpoint, sospende il flusso di lavoro e restituisce un oggetto processo del flusso di lavoro. Suspend-Workflow restituisce un oggetto processo del flusso di lavoro anche se il flusso di lavoro non viene eseguito in modo esplicito come processo.

Resume-Job riprende il Test-Suspend flusso di lavoro in Job8. Usa il parametro Wait per mantenere il prompt dei comandi fino a quando il processo non viene ripreso.

Il Receive-Job cmdlet ottiene i risultati del Test-Suspend flusso di lavoro. Il comando finale nel flusso di lavoro restituisce un oggetto TimeSpan che rappresenta il tempo trascorso tra la data e l'ora correnti e la data e l'ora salvate nella $a variabile prima della sospensione del flusso di lavoro.

#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

Il Resume-Job cmdlet consente di riprendere un processo del flusso di lavoro sospeso usando l'attività Suspend-Workflow . Questa attività sospende un flusso di lavoro all'interno di un flusso di lavoro. È valida solo nei flussi di lavoro.

Per informazioni su Suspend-Workflow, vedere about_Suspend-Workflow](.. /PSWorkflow/about/about_Suspend-Workflow.md).

Parametri

-Confirm

Richiede conferma prima di eseguire il cmdlet.

Tipo:SwitchParameter
Alias:cf
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Filter

Specifica una tabella hash di condizioni. Questo cmdlet riprende i processi che soddisfano tutte le condizioni nella tabella hash. Immettere una tabella hash in cui le chiavi sono le proprietà del processo e i valori sono i valori di queste proprietà.

Tipo:Hashtable
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Id

Specifica una matrice di ID per i processi ripresi da questo cmdlet.

L'ID è un numero intero che identifica in modo univoco il processo nella sessione corrente. È più facile ricordare e digitare l'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID, separati da virgole. Per trovare l'ID di un processo, eseguire Get-Job.

Tipo:Int32[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-InstanceId

Specifica una matrice di ID istanza di processi ripresi da questo cmdlet. Il valore predefinito corrisponde a tutti i processi.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, eseguire Get-Job.

Tipo:Guid[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Job

Specifica i processi da riavviare. Immettere una variabile che contiene i processi o un comando che li ottiene. È anche possibile inviare tramite pipe i processi al Resume-Job cmdlet .

Tipo:Job[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Specifica una matrice di nomi descrittivi dei processi ripresi da questo cmdlet. Immettere uno o più nomi di processo. I caratteri jolly sono consentiti.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-State

Specifica lo stato dei processi da riprendere. I valori validi per questo parametro sono:

  • NotStarted
  • In esecuzione
  • Completato
  • Non riuscito
  • Arrestato
  • Bloccati
  • Suspended
  • Disconnesso
  • Suspending
  • Arresto in corso

Questo cmdlet riprende solo i processi nello stato Suspended .

Per altre informazioni sugli stati dei processi, vedere Enumerazione JobState.

Tipo:JobState
Valori accettati:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Wait

Indica che questo cmdlet elimina il prompt dei comandi fino al riavvio di tutti i risultati del processo. Per impostazione predefinita, questo cmdlet restituisce immediatamente i risultati disponibili.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-WhatIf

Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.

Tipo:SwitchParameter
Alias:wi
Posizione:Named
Valore predefinito:False
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

Job

È possibile inviare tramite pipe tutti i tipi di processi a questo cmdlet. Se Resume-Job ottiene un processo di un tipo non supportato, restituisce un errore irreversibile.

Output

None, System.Management.Automation.Job

Questo cmdlet restituisce i processi che tenta di riprendere, se si usa il parametro PassThru . In caso contrario, il cmdlet non genera alcun output.

Note

Windows PowerShell include gli alias seguenti per Resume-Job:

  • rujb

  • Resume-Job può riprendere solo i processi sospesi. Se si invia un processo in uno stato diverso, Resume-Job esegue l'operazione di ripresa sul processo, ma genera un avviso per notificare che non è stato possibile riprendere il processo. Per eliminare l'avviso, usare il parametro comune WarningAction con un valore SilentlyContinue.

  • Se un processo non è di un tipo che supporta la ripresa, ad esempio un processo del flusso di lavoro (PSWorkflowJob), Resume-Job restituisce un errore irreversibile.

  • Il meccanismo e il percorso di salvataggio di un processo sospeso possono variare a seconda del tipo di processo. Ad esempio, i processi del flusso di lavoro sospesi vengono salvati in un archivio di file flat per impostazione predefinita, ma possono essere salvati anche in un database SQL.

  • Quando si riprende un processo, lo stato del processo passa da Sospeso a In esecuzione. Per trovare i processi in esecuzione, inclusi quelli ripresi da questo cmdlet, usare il parametro State del Get-Job cmdlet per ottenere i processi nello stato In esecuzione.

  • Alcuni tipi di processi hanno opzioni o proprietà che impediscono a Windows PowerShell di sospendere il processo. Se tenta di sospendere il processo, verificare che le opzioni e le proprietà del processo consentano la sospensione.