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 cmdlet Resume-Job riprende un processo del flusso di lavoro sospeso, ad esempio usando il cmdlet Suspend-Job o l'attività about_Suspend-Workflow. Quando un processo del flusso di lavoro riprende, il motore di processo ricostruisce lo stato, i metadati e l'output dalle risorse salvate, ad esempio i checkpoint. Il processo viene riavviato senza alcuna perdita di stato o dati. Lo stato del processo cambia da Suspended a Running.
Usare i parametri di Resume-Job per selezionare i processi in base al nome, all'ID dell'istanza o alla pipe di un oggetto processo, ad esempio uno restituito dal cmdlet Get-Job, per riprendere il processo. È anche possibile usare un filtro di proprietà per selezionare un processo da riavviare.
Per impostazione predefinita, Resume-Job viene restituito immediatamente, anche se non sono ancora stati riavviati tutti i processi. Per eliminare il prompt dei comandi finché non vengono riavviati tutti i processi specificati, usare il parametro Wait.
Il cmdlet Resume-Job funziona solo su tipi di processo personalizzati, ad esempio i processi del flusso di lavoro. Non funziona sui processi in background standard, ad esempio quelli avviati usando il cmdlet Start-Job. Se si invia un processo di un tipo non supportato, Resume-Job genera un errore irreversibile e arresta l'esecuzione.
Per identificare un processo del flusso di lavoro, cercare il valore PSWorkflowJob nella proprietà PSJobTypeName del processo. Per determinare se un determinato tipo di processo personalizzato supporta il cmdlet Resume-Job , 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 cmdlet Import-Module 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
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
I comandi in questo esempio verificano che il processo sia un processo del flusso di lavoro sospeso e quindi lo riavviano.
Esempio 2: Riprendere un processo in base al nome
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*
Questo comando usa il parametro Name per riavviare diversi processi del flusso di lavoro nel computer locale.
Esempio 3: Usare valori di proprietà personalizzati
PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended
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 inoltre il parametro State per verificare che il processo del flusso di lavoro sia sospeso, prima di tentare di riavviarlo.
Esempio 4: Riprendere tutti i processi sospesi in un computer remoto
PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}
Questo comando riavvia tutti i processi sospesi nel computer remoto Srv01.
Il comando usa il cmdlet Invoke-Command per eseguire un comando nel computer Srv01. Il comando remoto usa il parametro State del cmdlet Get-Job per ottenere tutti i processi sospesi nel computer. Un operatore pipeline (|) invia i processi sospesi al cmdlet Resume-Job, che li riavvia.
Esempio 5: Attendere la ripresa dei processi
PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait
Questo comando usa il parametro Wait per indirizzare Resume-Job per restituire solo dopo la ripresa di tutti i processi specificati. Il parametro Wait risulta particolarmente utile negli script che presuppongono che i processi vengano riavviati prima che lo script continui.
Esempio 6: Riprendere un flusso di lavoro che si sospende
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
Il cmdlet Resume-Job 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.
Parametri
-Confirm
Richiede la conferma dell'utente prima di eseguire il cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Filter
Specifica una tabella hash di condizioni. Questo cmdlet riprende i processi che soddisfano tutte le condizioni della tabella hash. Immettere una tabella hash in cui le chiavi sono le proprietà del processo e i valori sono i valori di queste proprietà.
Type: | Hashtable |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Id
Specifica una matrice di ID per i processi ripresi da questo cmdlet.
L'ID è un intero che identifica in modo univoco il processo nella sessione corrente. È più semplice ricordare e digitare l'ID dell'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.
Type: | Int32[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | Guid[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Job
Specifica i processi da riavviare. Immettere una variabile che contiene i processi o un comando che li ottiene. È anche possibile inviare i processi tramite pipe al cmdlet Resume-Job.
Type: | Job[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-State
Specifica lo stato dei processi da riprendere. I valori validi per questo parametro sono:
- NotStarted
- In esecuzione
- Completato
- Non riuscito
- Arrestato
- Bloccato
- Suspended
- Disconnesso
- Suspending
- Stopping
Questo cmdlet riprende solo i processi nello stato Sospeso .
Per altre informazioni sugli stati dei processi, vedere Enumerazione JobState nella libreria MSDN.
Type: | JobState |
Accepted values: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | 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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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 di terminazione.
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
- Il processo di ripresa può riprendere solo i processi sospesi. Se si invia un processo in uno stato diverso, Resume-Job esegue l'operazione di riavvio del processo, ma genera un avviso per informare l'utente che non è stato possibile riavviare il processo. Per eliminare l'avviso, usare il parametro comune WarningAction con un valore di 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 di terminazione.
- 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 riavvia un processo, il suo stato cambia da Suspended a Running. Per trovare i processi in esecuzione, inclusi quelli ripresi da questo cmdlet, usare il parametro State del cmdlet Get-Job per ottenere 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 non riesce, verificare che le opzioni e le proprietà del processo consentano la sospensione.