Wait-Process
Attende che i processi vengano arrestati prima di accettare più input.
Sintassi
Name (Impostazione predefinita)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Descrizione
Il cmdlet Wait-Process attende l'arresto di uno o più processi in esecuzione prima di accettare l'input. Nella console di Windows PowerShell, questo cmdlet elimina il prompt dei comandi fino a quando i processi non vengono arrestati. È possibile specificare un processo in base al nome del processo o all'ID processo (PID) oppure reindirizzare un oggetto processo a Wait-Process.
Wait-Process funziona solo nei processi in esecuzione nel computer locale.
Esempio
Esempio 1: Arrestare un processo e attendere
PS C:\> $nid = (Get-Process notepad).id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
In questo esempio viene arrestato il processo Blocco note e quindi viene attendibile l'arresto del processo prima di continuare con il comando successivo.
Il primo comando usa il cmdlet Get-Process per ottenere l'ID del processo Blocco note. Memorizza l'ID nella variabile $nid.
Il secondo comando usa il cmdlet Stop-Process per arrestare il processo con l'ID archiviato in $nid.
Il terzo comando utilizza Wait-Process per attendere l'arresto del processo del Blocco note. Utilizza il parametro Id di Wait-Process per identificare il processo.
Esempio 2: Specifica di un processo
PS C:\> $p = Get-Process notepad
PS C:\> Wait-Process -Id $p.id
PS C:\> Wait-Process -Name "notepad"
PS C:\> Wait-Process -InputObject $p
Questi comandi mostrano tre diversi metodi per specificare un processo in Wait-Process. Il primo comando ottiene il processo Blocco note e lo memorizza nella variabile $p.
Il secondo comando utilizza il parametro Id , il terzo il parametro Name e il quarto il parametro InputObject .
Questi comandi hanno gli stessi risultati e possono essere utilizzati in modo intercambiabile.
Esempio 3: Attendere i processi per un tempo specificato
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Questo comando attende 30 secondi per l'arresto dei processi di Outlook e Winword. Se entrambi i processi non vengono arrestati, il cmdlet visualizza un errore non fatale e il prompt dei comandi.
Parametri
-Id
Specifica gli ID dei processi.
Per specificare più ID, usare le virgole per separare gli ID.
Per trovare il PID di un processo, digitare Get-Process.
Proprietà dei parametri
| Tipo: | Int32[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | PID, ProcessId |
Set di parametri
Id
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-InputObject
Specifica i processi inviando gli oggetti processo. Immettere una variabile che contiene gli oggetti processo oppure digitare un comando o un'espressione che ottenga gli oggetti processo, ad esempio il cmdlet Get-Process.
Proprietà dei parametri
| Tipo: | Process[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
InputObject
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Name
Specifica i nomi dei processi. Per specificare più nomi, utilizzare le virgole per separarli. I caratteri jolly non sono supportati.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | ProcessName |
Set di parametri
Name
| Posizione: | 0 |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-Timeout
Specifica il tempo massimo, in secondi, di attesa del cmdlet per l'arresto dei processi specificati. Alla scadenza di questo intervallo, il comando visualizza un errore non fatale che elenca i processi ancora in esecuzione e termina l'attesa. Per impostazione predefinita, non è previsto alcun timeout.
Proprietà dei parametri
| Tipo: | Int32 |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | TimeoutSec |
Set di parametri
(All)
| Posizione: | 1 |
| 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
Process
È possibile inviare tramite pipe un oggetto processo a questo cmdlet.
Output
None
Questo cmdlet non genera alcun output.
Note
Questo cmdlet utilizza il metodo WaitForExit della classe System.Diagnostics.Process. Per ulteriori informazioni su questo metodo, vedere Microsoft .NET Framework SDK.