Suspend-Job
Arresta temporaneamente i processi del flusso di lavoro.
Sintassi
SessionIdParameterSet (Impostazione predefinita)
Suspend-Job
[-Id] <Int32[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
JobParameterSet
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
NameParameterSet
Suspend-Job
[-Name] <String[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
InstanceIdParameterSet
Suspend-Job
[-InstanceId] <Guid[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
FilterParameterSet
Suspend-Job
[-Filter] <Hashtable>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
StateParameterSet
Suspend-Job
[-State] <JobState>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Suspend-Job sospende i processi del flusso di lavoro. Suspend indica l'interruzione temporanea o la sospensione di un processo del flusso di lavoro. Questo cmdlet consente agli utenti che eseguono flussi di lavoro di sospendere il flusso di lavoro. Completa l'attività suspend-workflowhttps://go.microsoft.com/fwlink/?LinkId=267141, ovvero un comando nel flusso di lavoro che sospende il flusso di lavoro.
Il cmdlet Suspend-Job funziona solo nei processi del flusso di lavoro. Non funziona su processi in background standard, ad esempio quelli avviati usando il cmdlet Start-Job.
Per identificare un processo del flusso di lavoro, cercare un valore di PSWorkflowJob nel PSJobTypeName proprietà del processo. Per determinare se un particolare tipo di processo personalizzato supporta il cmdlet Suspend-Job, vedere gli argomenti della Guida per il tipo di processo personalizzato.
Quando si sospende un processo del flusso di lavoro, il processo del flusso di lavoro viene eseguito al checkpoint successivo, sospende e restituisce immediatamente un oggetto processo del flusso di lavoro. Per attendere il completamento della sospensione prima di ottenere il processo, usare il parametro wait di Suspend-Job o il cmdlet Wait-Job. Quando il processo del flusso di lavoro viene sospeso, il valore della proprietà State del processo è Suspended.
La sospensione si basa correttamente sui checkpoint. Lo stato del processo corrente, i metadati e l'output vengono salvati nel checkpoint in modo che il processo del flusso di lavoro possa essere ripreso senza perdita di stato o dati. Se il processo del flusso di lavoro non dispone di checkpoint, non può essere sospeso correttamente. Per aggiungere checkpoint a un flusso di lavoro in esecuzione, usare il parametro comune PSPersist flusso di lavoro. È possibile usare il parametro Force per sospendere immediatamente qualsiasi processo del flusso di lavoro e sospendere un processo del flusso di lavoro che non dispone di checkpoint, ma l'azione potrebbe causare la perdita di stato e dati.
Prima di usare un cmdlet Job in un tipo di processo personalizzato, ad esempio un processo del flusso di lavoro (PSWorkflowJob) importare il modulo che supporta il tipo di processo personalizzato, usando il cmdlet Import-Module o usando o usando un cmdlet nel modulo.
Questo cmdlet è stato introdotto in Windows PowerShell 3.0.
Esempio
Esempio 1: Sospendere un processo del flusso di lavoro in base al nome
In questo esempio viene illustrato come sospendere un processo del flusso di lavoro.
Il primo comando crea il flusso di lavoro Get-SystemLog. Il flusso di lavoro usa l'attività CheckPoint-Workflow per definire un checkpoint nel flusso di lavoro.
Il secondo comando usa il parametro AsJob comune a tutti i flussi di lavoro per eseguire il flusso di lavoro Get-SystemLog come processo in background. Il comando usa il parametro comune JobName flusso di lavoro per specificare un nome descrittivo per il processo del flusso di lavoro.
Il terzo comando usa il cmdlet Get-Job per ottenere il processo del flusso di lavoro LogflowJob. L'output mostra che il valore della proprietà PSJobTypeName è PSWorkflowJob.
Il quarto comando usa il cmdlet Suspend-Job per sospendere il processo di LogflowJob. Il processo viene eseguito nel checkpoint e quindi viene sospeso.
#Sample Workflow
workflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
inlinescript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Running True localhost Get-SystemLog
Suspend-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Suspended True localhost Get-SystemLog
Esempio 2: Sospendere e riprendere un processo del flusso di lavoro
In questo esempio viene illustrato come sospendere e riprendere un processo del flusso di lavoro.
Il primo comando sospende il processo LogWorkflowJob. Il comando restituisce immediatamente. L'output mostra che il processo del flusso di lavoro è ancora in esecuzione, anche se viene sospeso.
Il secondo comando usa il cmdlet Get-Job per ottenere il processo LogWorkflowJob. L'output mostra che il processo del flusso di lavoro è stato sospeso correttamente.
Il terzo comando usa il cmdlet Get-Job per ottenere il processo LogWorkflowJob e il cmdlet Resume-Job per riprenderlo. L'output mostra che il processo del flusso di lavoro è stato ripreso correttamente ed è ora in esecuzione.
Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Esempio 3: Sospendere un processo del flusso di lavoro in un computer remoto
Invoke-Command -ComputerName Srv01 -ScriptBlock {Suspend-Job -Filter @{CustomID="031589"}
Questo comando usa il cmdlet Invoke-Command per sospendere un processo del flusso di lavoro nel computer remoto Srv01. Il valore del parametro Filter è una tabella hash che specifica un valore CustomID.
Questo customID è metadati del processo (PSPrivateMetadata).
Esempio 4: Attendere che il processo del flusso di lavoro venga sospeso
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
Questo comando sospende il processo del flusso di lavoro VersionCheck. Il comando usa il parametro wait per attendere la sospensione del processo del flusso di lavoro. Quando il processo del flusso di lavoro viene eseguito al checkpoint successivo e viene sospeso, il comando termina e restituisce l'oggetto processo.
Esempio 5: Forzare la sospensione di un processo del flusso di lavoro
Suspend-Job Maintenance -Force
Questo comando sospende forzatamente il processo del flusso di lavoro di manutenzione. Il processo di manutenzione non dispone di checkpoint. Non può essere sospeso correttamente e potrebbe non essere ripreso correttamente.
Parametri
-Confirm
Richiede conferma prima di eseguire il cmdlet.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | cfr |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Filter
Specifica una tabella hash di condizioni. Questo cmdlet sospende i processi che soddisfano tutte le condizioni. Immettere una tabella hash in cui le chiavi sono proprietà del processo e i valori sono valori delle proprietà del processo.
Proprietà dei parametri
| Tipo: | Hashtable |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
FilterParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Force
Sospende immediatamente il processo del flusso di lavoro. Questa azione potrebbe causare una perdita di stato e dati.
Per impostazione predefinita, Suspend-Job consente l'esecuzione del processo del flusso di lavoro fino al checkpoint successivo e quindi lo sospende.
È anche possibile usare questo parametro per sospendere i processi del flusso di lavoro che non dispongono di checkpoint.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | F |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Id
Specifica gli ID dei processi sospesi da questo cmdlet.
L'ID è un numero intero che identifica in modo univoco il lavoro 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, usare il cmdlet Get-Job.
Proprietà dei parametri
| Tipo: | Int32[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
SessionIdParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-InstanceId
Specifica gli ID istanza dei processi sospesi da questo cmdlet. Il valore predefinito è tutte le attività.
Un ID istanza è un GUID che identifica in modo univoco l'attività nel computer. Per trovare l'ID istanza di un processo, utilizzare Get-Job.
Proprietà dei parametri
| Tipo: | Guid[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
InstanceIdParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Job
Specifica i processi del flusso di lavoro arrestati da questo cmdlet. Immettere una variabile contenente i processi del flusso di lavoro o un comando che ottiene i processi del flusso di lavoro. È anche possibile inviare tramite pipe i processi del flusso di lavoro al cmdlet Suspend-Job.
Proprietà dei parametri
| Tipo: | Job[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
JobParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Name
Specifica i nomi descrittivi dei processi sospesi da questo cmdlet. Immettere uno o più nomi di processo del flusso di lavoro. Sono supportati caratteri jolly.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
NameParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-State
Specifica uno stato di lavoro. Questo cmdlet arresta solo i processi nello stato specificato. I valori accettabili per questo parametro sono:
- Non Avviato
- Correre
- Finito
- Non riuscito
- Fermato
- Bloccati
- Sospeso
- Disconnesso
- Sospensione
- Interruzione
Suspend-Job sospende solo i processi del flusso di lavoro nello stato In esecuzione.
Per altre informazioni sugli stati del processo, vedere 'enumerazione JobState.
Proprietà dei parametri
| Tipo: | JobState |
| Valore predefinito: | None |
| Valori accettati: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
StateParameterSet
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Wait
Indica che questo cmdlet elimina il prompt dei comandi fino a quando il processo del flusso di lavoro non si trova nello stato sospeso. Per impostazione predefinita, Suspend-Job restituisce immediatamente, anche se il processo del flusso di lavoro non è ancora nello stato sospeso.
Il parametro Wait equivale al piping di un comando Suspend-Job al cmdlet Wait-Job.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-WhatIf
Mostra gli effetti dell'esecuzione del cmdlet. Il cmdlet non viene eseguito.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Wi |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
Job
È possibile inviare tramite pipe tutti i tipi di processi a questo cmdlet. Tuttavia, se Suspend-Job ottiene un processo di un tipo non supportato, restituisce un errore irreversibile.
Output
Job
Questo cmdlet restituisce i processi sospesi.
Note
Windows PowerShell include gli alias seguenti per Suspend-Job:
sujb
Il meccanismo e la posizione per il 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 file flat per impostazione predefinita, ma possono anche essere salvati in un database.
Se si invia un processo del flusso di lavoro non nello stato In esecuzione, Suspend-Job visualizza un messaggio di avviso. Per eliminare l'avviso, usare il WarningAction parametro comune con il valore SilentlyContinue.
Se un processo non è di un tipo che supporta la sospensione, Suspend-Job restituisce un errore irreversibile.
Per trovare i processi del flusso di lavoro sospesi, inclusi quelli sospesi da questo cmdlet, usare il parametro State del cmdlet Get-Job per ottenere i processi del flusso di lavoro nello stato Suspended.
Alcuni tipi di processo 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.