Wait-Process
Attend que les processus soient arrêtés avant d’accepter davantage d’entrée.
Syntaxe
Name (Par défaut)
Wait-Process
[-Name] <String[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
Id
Wait-Process
[-Id] <Int32[]>
[[-Timeout] <Int32>]
[<CommonParameters>]
InputObject
Wait-Process
[[-Timeout] <Int32>]
-InputObject <Process[]>
[<CommonParameters>]
Description
L’applet de commande Wait-Process attend qu’un ou plusieurs processus en cours d’exécution soient arrêtés avant d’accepter l’entrée. Dans la console PowerShell, cette applet de commande supprime l’invite de commandes jusqu’à ce que les processus soient arrêtés. Vous pouvez spécifier un processus par nom de processus ou ID de processus (PID) ou diriger un objet de processus vers Wait-Process.
Wait-Process fonctionne uniquement sur les processus s’exécutant sur l’ordinateur local.
Exemples
Exemple 1 : Arrêter un processus et attendre
PS C:\> $nid = (Get-Process notepad).Id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid
Cet exemple montre comment arrêter le processus du Bloc-notes, puis attendre que le processus soit arrêté avant de continuer avec la commande suivante.
La première commande utilise l’applet de commande Get-Process pour obtenir l’ID du processus du Bloc-notes. Il stocke l’ID dans la variable $nid.
La deuxième commande utilise l’applet de commande Stop-Process pour arrêter le processus avec l’ID stocké dans $nid.
La troisième commande utilise Wait-Process pour attendre que le processus du Bloc-notes soit arrêté. Il utilise le paramètre ID de Wait-Process pour identifier le processus.
Exemple 2 : Spécification d’un processus
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
Ces commandes affichent trois méthodes différentes de spécification d’un processus pour Wait-Process. La première commande obtient le processus du Bloc-notes et le stocke dans la variable $p.
La deuxième commande utilise le paramètre ID de
Ces commandes ont les mêmes résultats et peuvent être utilisées de manière interchangeable.
Exemple 3 : Attendre les processus pendant une heure spécifiée
PS C:\> Wait-Process -Name outlook, winword -Timeout 30
Cette commande attend 30 secondes pour que les processus Outlook et Winword s’arrêtent. Si les deux processus ne sont pas arrêtés, l’applet de commande affiche une erreur sans fin et l’invite de commandes.
Paramètres
-Id
Spécifie les ID de processus des processus. Pour spécifier plusieurs ID, utilisez des virgules pour séparer les ID.
Pour rechercher le PID d’un processus, tapez Get-Process.
Propriétés du paramètre
| Type: | Int32[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Identifiant de processus (PID), ProcessId |
Jeux de paramètres
Id
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-InputObject
Spécifie les processus en envoyant des objets de processus. Entrez une variable qui contient les objets de processus, ou tapez une commande ou une expression qui obtient les objets de processus, tels que l’applet de commande Get-Process.
Propriétés du paramètre
| Type: | Process[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
InputObject
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Name
Spécifie les noms de processus des processus. Pour spécifier plusieurs noms, utilisez des virgules pour séparer les noms. Les caractères génériques ne sont pas pris en charge.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | ProcessName |
Jeux de paramètres
Name
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-Timeout
Spécifie la durée maximale, en secondes, que cette applet de commande attend que les processus spécifiés s’arrêtent. Lorsque cet intervalle expire, la commande affiche une erreur sans fin qui répertorie les processus qui sont toujours en cours d’exécution et met fin à l’attente. Par défaut, il n’y a pas de délai d’attente.
Propriétés du paramètre
| Type: | Int32 |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | TimeoutSec |
Jeux de paramètres
(All)
| Position: | 1 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
Process
Vous pouvez diriger un objet de processus vers cette applet de commande.
Sorties
None
Cette applet de commande ne retourne aucune sortie.
Notes
Cette applet de commande utilise la méthode WaitForExit de la classe System.Diagnostics.Process.
Contrairement à
Start-Process -Wait,Wait-Processattend uniquement les processus identifiés.Start-Process -Waitattend la sortie de l’arborescence de processus (le processus et tous ses descendants) avant de retourner le contrôle.