Stop-Job
Interrompe un processo in background di Windows PowerShell.
Sintassi
Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Descrizione
Il cmdlet Stop-Job arresta i processi in background di Windows PowerShell in corso. È possibile utilizzare questo cmdlet per interrompere tutti i processi o quelli selezionati in base al nome, all'ID, all'ID istanza, allo stato o passando un oggetto processo a Stop-Job.
È possibile utilizzare Stop-Job per interrompere i processi avviati tramite Start-Job o tramite il parametro AsJob di Invoke-Command. Quando si arresta un processo in background, in Windows PowerShell vengono completate tutte le attività in sospeso nella coda di quel processo, quindi viene terminato il processo. Nessuna nuova attività è stata aggiunta alla coda dopo l'invio di questo comando.
Questo cmdlet non elimina i processi in background. Per eliminare un processo, utilizzare Remove-Job.
Parametri
-Id <Int32[]>
Interrompe i processi con gli ID specificati. Il valore predefinito è impostato su tutti i processi della sessione corrente.
L'ID è un valore intero che identifica in modo univoco il processo all'interno della sessione corrente. È più facile da ricordare e digitare rispetto all'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID (separati da virgole). Per trovare l'ID di un processo, digitare "Get-Job" senza parametri.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-InstanceId <Guid[]>
Interrompe solo i processi con gli ID istanza specificati. Il valore predefinito è impostato su 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, utilizzare Get-Job.
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-Job <Job[]>
Specifica i processi da interrompere. Immettere una variabile che contiene i processi o un comando che consenta di ottenerli. È anche possibile utilizzare un operatore pipeline per inviare i processi al cmdlet Stop-Job. Per impostazione predefinita, Stop-Job elimina tutti i processi avviati nella sessione corrente.
Obbligatorio? |
true |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByValue, ByPropertyName) |
Accettare caratteri jolly? |
false |
-Name <string[]>
Interrompe solo i processi con i nomi descrittivi specificati. Immettere i nomi dei processi in un elenco separato da virgole oppure utilizzare caratteri jolly (*) per immettere un modello di nome di processo. Per impostazione predefinita, Stop-Job interrompe tutti i processi creati nella sessione corrente.
Poiché non è garantito che il nome descrittivo sia univoco, utilizzare i parametri WhatIf e Confirm in caso di interruzione dei processi per nome.
Obbligatorio? |
false |
Posizione? |
1 |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
true |
-PassThru
Restituisce un oggetto che rappresenta il nuovo processo in background. Per impostazione predefinita, il cmdlet non genera alcun output.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-State <JobState>
Interrompe solo i processi nello stato specificato. I valori validi sono NotStarted, Running, Completed, Stopped, Failed e Blocked.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
true (ByPropertyName) |
Accettare caratteri jolly? |
false |
-Confirm
Chiede una conferma prima di eseguire il comando.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
-WhatIf
Descrive ciò che accadrebbe se si eseguisse il comando senza eseguirlo realmente.
Obbligatorio? |
false |
Posizione? |
named |
Valore predefinito |
|
Accettare input da pipeline? |
false |
Accettare caratteri jolly? |
false |
<CommonParameters>
Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.
Input e output
Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.
Input |
System.Management.Automation.RemotingJob È possibile reindirizzare un oggetto processo a Stop-Job. |
Output |
Nessuno o System.Management.Automation.RemotingJob Quando si utilizza il parametro PassThru, Stop-Job restituisce un oggetto processo. Negli altri casi, il cmdlet non genera alcun output. |
Esempio 1
C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02
C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}}
C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j
Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Stop-Job per interrompere un processo in esecuzione in un computer remoto.
Poiché il processo è stato avviato tramite Invoke-Command per eseguire un comando Start-Job in modalità remota, l'oggetto processo viene archiviato nel computer remoto ed è necessario utilizzare un altro comando Invoke-Command per eseguire un comando Stop-Job in modalità remota. Per ulteriori informazioni sui processi in background remoti, vedere about_Remote_Jobs.
Il primo comando crea una sessione di Windows PowerShell (PSSession) nel computer Server01 e salva l'oggetto sessione nella variabile $s. Vengono utilizzate le credenziali di un amministratore di dominio.
Nel secondo comando viene utilizzato il cmdlet Invoke-Command per eseguire un comando Start-Job nella sessione. Il comando nel processo ottiene tutti gli eventi del registro eventi del sistema. L'oggetto processo risultante viene archiviato nella variabile $j.
Il terzo comando interrompe il processo. Viene utilizzato il cmdlet Invoke-Command per eseguire un comando Stop-Job nella sessione PSSession in Server01. Poiché gli oggetti processo vengono archiviati in $j, una variabile nel computer locale, il comando utilizza la parola chiave "param" per dichiarare le variabili locali nel comando e il parametro ArgumentList per fornire valori per le variabili.
Al termine dell'esecuzione del comando, il processo viene arrestato e la sessione PSSession in $s è disponibile per l'uso.
Esempio 2
C:\PS>stop-job -state failed
Descrizione
-----------
Questo comando interrompe tutti i processi con un valore di stato "Failed".
Esempio 3
C:\PS>stop-job -name job1
Descrizione
-----------
Questo comando interrompe il processo in background Job1.
Esempio 4
C:\PS>stop-job -id 1, 3, 4
Descrizione
-----------
Questo comando interrompe tre processi. Tali processi vengono identificati tramite i relativi ID.
Esempio 5
C:\PS>get-job | stop-job
Descrizione
-----------
Questo comando interrompe tutti i processi in background nella sessione corrente.
Esempio 6
C:\PS>stop-job -state blocked
Descrizione
-----------
Questo comando interrompe tutti i processi con stato "Blocked".
Esempio 7
C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I
nstanceID -auto
Id Name Command State InstanceId
-- ---- ------- ----- ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf
Descrizione
-----------
Questi comandi indicano come interrompere un processo in base al relativo ID istanza.
Il primo comando utilizza un cmdlet Get-Job per ottenere i processi nella sessione corrente. Viene utilizzato un operatore pipeline (|) per inviare i processi comando Format-Table tramite cui viene visualizzata una tabella delle proprietà specificate di ciascun processo. La tabella include l'ID istanza di ogni processo. Viene utilizzata una proprietà calcolata per visualizzare lo stato del processo.
Il secondo comando utilizza un comando Stop-Job con il parametro InstanceID per interrompere un processo selezionato.
Esempio 8
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob
C:\PS> $j | stop-job -passthru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True judithh-tablet get-eventlog system
Descrizione
-----------
In questo esempio viene illustrato come utilizzare il cmdlet Stop-Job per interrompere un processo in esecuzione in un computer remoto.
Poiché il processo è stato avviato tramite il parametro AsJob di Invoke-Command, l'oggetto processo si trova nel computer locale, anche se il processo viene eseguito nel computer remoto. Di conseguenza, è possibile utilizzare un comando Stop-Job locale per interrompere il processo.
Nel primo comando viene utilizzato il cmdlet Invoke-Command per avviare un processo in background nel computer Server01. Viene utilizzato il parametro AsJob per eseguire il comando remoto come processo in background.
Questo comando restituisce un oggetto processo, lo stesso oggetto processo restituito da Start-Job. Il comando consente di salvare l'oggetto processo nella variabile $j.
Il secondo comando utilizza un operatore pipeline per inviare il processo nella variabile $j a Stop-Job. Il comando utilizza il parametro PassThru per indicare a Stop-Job di restituire un oggetto processo. La visualizzazione dell'oggetto processo conferma che lo stato del processo è "Stopped".
Per ulteriori informazioni sui processi in background remoti, vedere about_Remote_Jobs.
Vedere anche
Concetti
about_Jobs
about_Job_Details
about_Remote_Jobs
Start-Job
Get-Job
Receive-Job
Wait-Job
Remove-Job
Invoke-Command