Start-Process
Démarre un ou plusieurs processus sur l’ordinateur local.
Syntaxe
Default (Par défaut)
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-Credential <pscredential>]
[-WorkingDirectory <string>]
[-LoadUserProfile]
[-NoNewWindow]
[-PassThru]
[-RedirectStandardError <string>]
[-RedirectStandardInput <string>]
[-RedirectStandardOutput <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[-UseNewEnvironment]
[<CommonParameters>]
UseShellExecute
Start-Process
[-FilePath] <string>
[[-ArgumentList] <string[]>]
[-WorkingDirectory <string>]
[-PassThru]
[-Verb <string>]
[-WindowStyle <ProcessWindowStyle>]
[-Wait]
[<CommonParameters>]
Description
L’applet de commande Start-Process démarre un ou plusieurs processus sur l’ordinateur local. Par défaut, Start-Process crée un processus qui hérite de toutes les variables d’environnement définies dans le processus actuel.
Pour spécifier le programme qui s’exécute dans le processus, entrez un fichier exécutable ou un fichier de script, ou un fichier qui peut être ouvert à l’aide d’un programme sur l’ordinateur. Si vous spécifiez un fichier non exécutable, Start-Process démarre le programme associé au fichier, similaire à l’applet de commande Invoke-Item.
Vous pouvez utiliser les paramètres de Start-Process pour spécifier des options, telles que le chargement d’un profil utilisateur, le démarrage du processus dans une nouvelle fenêtre ou l’utilisation d’autres informations d’identification.
Exemples
Exemple 1 : Démarrer un processus qui utilise des valeurs par défaut
Cet exemple démarre un processus qui utilise le fichier Sort.exe dans le dossier actif. La commande utilise toutes les valeurs par défaut, notamment le style de fenêtre par défaut, le dossier de travail et les informations d’identification.
Start-Process -FilePath "sort.exe"
Exemple 2 : Imprimer un fichier texte
Cet exemple démarre un processus qui imprime le fichier C:\PS-Test\MyFile.txt.
Start-Process -FilePath "myfile.txt" -WorkingDirectory "C:\PS-Test" -Verb Print
Exemple 3 : Démarrer un processus pour trier les éléments dans un nouveau fichier
Cet exemple démarre un processus qui trie les éléments dans le fichier TestSort.txt et retourne les éléments triés dans les fichiers Sorted.txt. Toutes les erreurs sont écrites dans le fichier SortError.txt. Le paramètre UseNewEnvironment spécifie que le processus s’exécute avec ses propres variables d’environnement.
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
Cet exemple utilise la mise en forme pour passer des paramètres à l’applet de commande. Pour plus d'informations, consultez À propos de la projection.
Exemple 4 : Démarrer un processus dans une fenêtre agrandie
Cet exemple démarre le processus Notepad.exe. Il agrandit la fenêtre et conserve la fenêtre jusqu’à ce que le processus se termine.
Start-Process -FilePath "notepad" -Wait -WindowStyle Maximized
Exemple 5 : Démarrer PowerShell en tant qu’administrateur
Cet exemple démarre PowerShell à l’aide de l’option Exécuter en tant qu’administrateur.
Start-Process -FilePath "powershell" -Verb RunAs
Exemple 6 : Utilisation de verbes différents pour démarrer un processus
Cet exemple montre comment rechercher les verbes qui peuvent être utilisés lors du démarrage d’un processus. Les verbes disponibles sont déterminés par l’extension de nom de fichier du fichier qui s’exécute dans le processus.
$startExe = New-Object System.Diagnostics.ProcessStartInfo -Args powershell.exe
$startExe.Verbs
open
runas
runasuser
L’exemple utilise New-Object pour créer un objet System.Diagnostics.ProcessStartInfo pour powershell.exe, le fichier qui s’exécute dans le processus PowerShell. La propriété verbs de l’objet ProcessStartInfo montre que vous pouvez utiliser les verbes open et RunAs avec powershell.exe, ou avec n’importe quel processus qui exécute un fichier .exe.
Exemple 7 : Spécification d’arguments au processus
Les deux commandes démarrent l’interpréteur de commandes Windows, en émettant une commande dir sur le dossier Program Files. Étant donné que ce nom de dossier contient un espace, la valeur doit être entourée de guillemets échapés.
Notez que la première commande spécifie une chaîne en tant que ArgumentList. La deuxième commande est un tableau de chaînes.
Start-Process -FilePath "$Env:ComSpec" -ArgumentList "/c dir `"%SystemDrive%\Program Files`""
Start-Process -FilePath "$Env:ComSpec" -ArgumentList "/c","dir","`"%SystemDrive%\Program Files`""
Paramètres
-ArgumentList
Spécifie des paramètres ou des valeurs de paramètre à utiliser lorsque cette applet de commande démarre le processus. Les arguments peuvent être acceptés en tant que chaîne unique avec les arguments séparés par des espaces, ou sous la forme d’un tableau de chaînes séparés par des virgules. L’applet de commande joint le tableau en une seule chaîne avec chaque élément du tableau séparé par un espace unique.
Les guillemets externes des chaînes PowerShell ne sont pas inclus lorsque les valeurs ArgumentList sont passées au nouveau processus. Si les paramètres ou les valeurs de paramètre contiennent un espace ou des guillemets, ils doivent être entourés de guillemets doubles échapés. Pour plus d'informations, consultez la section sur les règles de citation.
Pour obtenir les meilleurs résultats, utilisez un seul ArgumentList valeur contenant tous les arguments et tous les guillemets nécessaires.
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: | Args |
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 |
-Credential
Spécifie un compte d’utilisateur autorisé à effectuer cette action. Par défaut, l’applet de commande utilise les informations d’identification de l’utilisateur actuel.
Tapez un nom d’utilisateur, tel que User01 ou Domain01\User01, ou entrez un objet PSCredential généré par l’applet de commande Get-Credential. Si vous tapez un nom d’utilisateur, vous êtes invité à entrer le mot de passe.
Les informations d’identification sont stockées dans un objet PSCredential et le mot de passe est stocké en tant que SecureString.
Remarque
Pour plus d’informations sur la protection des données de SecureString, consultez Quelle est la sécurité de SecureString ?.
Propriétés du paramètre
| Type: | PSCredential |
| Valeur par défaut: | Current user |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | RunAs |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-FilePath
Spécifie le chemin d’accès et le nom de fichier facultatifs du programme qui s’exécute dans le processus. Entrez le nom d’un fichier exécutable ou d’un document, tel qu’un .txt ou un fichier .doc, associé à un programme sur l’ordinateur. Ce paramètre est obligatoire.
Si vous spécifiez uniquement un nom de fichier, utilisez le paramètre WorkingDirectory
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: | PSPath |
Jeux de paramètres
(All)
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-LoadUserProfile
Indique que cette applet de commande charge le profil utilisateur Windows stocké dans la clé de Registre HKEY_USERS pour l’utilisateur actuel.
Ce paramètre n’affecte pas les profils PowerShell. Pour plus d’informations, consultez about_Profiles.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Lup |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-NoNewWindow
Démarrez le nouveau processus dans la fenêtre de console actuelle. Par défaut sur Windows, PowerShell ouvre une nouvelle fenêtre.
Vous ne pouvez pas utiliser les paramètres NoNewWindow et WindowStyle dans la même commande.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Nno |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-PassThru
Retourne un objet de processus pour chaque processus démarré par l’applet de commande. Par défaut, cette applet de commande ne génère aucune sortie.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-RedirectStandardError
Spécifie un fichier. Cette applet de commande envoie toutes les erreurs générées par le processus à un fichier que vous spécifiez. Entrez le chemin d’accès et le nom de fichier. Par défaut, les erreurs s’affichent dans la console.
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: | RSE |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-RedirectStandardInput
Spécifie un fichier. Cette applet de commande lit l’entrée à partir du fichier spécifié. Entrez le chemin d’accès et le nom de fichier du fichier d’entrée. Par défaut, le processus obtient son entrée à partir du clavier.
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: | RSI |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-RedirectStandardOutput
Spécifie un fichier. Cette applet de commande envoie la sortie générée par le processus à un fichier que vous spécifiez. Entrez le chemin d’accès et le nom de fichier. Par défaut, la sortie s’affiche dans la console.
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: | RSO |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-UseNewEnvironment
Indique que cette applet de commande utilise de nouvelles variables d’environnement spécifiées pour le processus. Par défaut, le processus démarré s’exécute avec les variables d’environnement héritées du processus parent.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
Default
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Verb
Spécifie un verbe à utiliser lorsque cette applet de commande démarre le processus. Les verbes disponibles sont déterminés par l’extension de nom de fichier du fichier qui s’exécute dans le processus.
Le tableau suivant présente les verbes pour certains types de fichiers de processus courants.
| Type de fichier | Verbes |
|---|---|
| .cmd |
Edit, , OpenPrint, , RunAsRunAsUser |
| .exe |
Open, , RunAsRunAsUser |
| .txt |
Open, , PrintPrintTo |
| .wav (format audio) |
Open, Play |
Pour rechercher les verbes qui peuvent être utilisés avec le fichier qui s’exécute dans un processus, utilisez l’applet de commande New-Object pour créer un objet System.Diagnostics.ProcessStartInfo pour le fichier. Les verbes disponibles se trouvent dans la propriété Verbs de l’objet ProcessStartInfo. Pour plus d’informations, consultez les exemples.
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 |
Jeux de paramètres
UseShellExecute
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Wait
Indique que cette applet de commande attend que le processus spécifié et ses descendants se terminent avant d’accepter plus d’entrée. Ce paramètre supprime l’invite de commandes ou conserve la fenêtre jusqu’à ce que les processus se terminent.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-WindowStyle
Spécifie l’état de la fenêtre utilisée pour le nouveau processus. La valeur par défaut est Normal.
Les valeurs acceptables pour ce paramètre sont les suivantes :
NormalHiddenMinimizedMaximized
Vous ne pouvez pas utiliser les paramètres WindowStyle et NoNewWindow dans la même commande.
Propriétés du paramètre
| Type: | ProcessWindowStyle |
| Valeur par défaut: | None |
| Valeurs acceptées: | Normal, Hidden, Minimized, Maximized |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-WorkingDirectory
Spécifie l’emplacement dans lequel le nouveau processus doit commencer. La valeur par défaut est l’emplacement du fichier exécutable ou du document démarré. Les caractères génériques ne sont pas pris en charge. Le chemin d’accès ne doit pas contenir de caractères qui seraient interprétés comme des caractères génériques.
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 |
Jeux de paramètres
(All)
| Position: | Named |
| 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
None
Vous ne pouvez pas diriger les objets vers cette applet de commande.
Sorties
None
Par défaut, cette applet de commande ne retourne aucune sortie.
Process
Lorsque vous utilisez le paramètre PassThru, cette applet de commande retourne un objet Process.
Notes
Windows PowerShell inclut les alias suivants pour Start-Process:
sapsstart
Les commandes natives sont des fichiers exécutables installés dans le système d’exploitation. Ces exécutables peuvent être exécutés à partir de n’importe quel interpréteur de commandes, comme PowerShell. Généralement, vous exécutez la commande exactement comme vous le feriez dans bash ou cmd.exe. L’applet de commande Start-Process peut être utilisée pour exécuter des commandes natives, mais ne doit être utilisée que lorsque vous devez contrôler la façon dont la commande est exécutée.
Par défaut, Start-Process lance un processus de façon asynchrone. Le contrôle est retourné instantanément à PowerShell même si le nouveau processus est toujours en cours d’exécution.
- Sur le système local, le processus lancé vit indépendamment du processus d’appel.
- Sur un système distant, le nouveau processus est arrêté lorsque la session distante se termine immédiatement après la commande
Start-Process. Par conséquent, vous ne pouvez pas utiliserStart-Processdans une session distante s’attendant à ce que le processus lancé expire la session.
Si vous devez utiliser Start-Process dans une session distante, appelez-le avec le paramètre Wait. Vous pouvez également utiliser d’autres méthodes pour créer un processus sur le système distant.
Lors de l’utilisation du paramètre Wait, Start-Process attend que l’arborescence de processus (le processus et tous ses descendants) se termine avant de retourner le contrôle. Cela est différent du comportement de l’applet de commande Wait-Process, qui attend uniquement que les processus spécifiés se terminent.
Sur Windows, le cas d’usage le plus courant pour Start-Process consiste à utiliser le paramètre Wait pour bloquer la progression jusqu’à ce que le nouveau processus se termine. Sur le système non-Windows, cela est rarement nécessaire, car le comportement par défaut pour les applications en ligne de commande équivaut à Start-Process -Wait.
Cette applet de commande est implémentée à l’aide de la méthode Start de la classe System.Diagnostics.Process. Pour plus d’informations sur cette méthode, consultez méthode Process.Start.