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