Démarrage des processus avec Windows PowerShell
-
La cmdlet
Start-Process
dans PowerShell -
Les paramètres de la cmdlet
Start-Process
-
Les avantages de PowerShell
Start-Process
la cmdlet Start-Process
est une commande PowerShell utilisée pour démarrer un ou plusieurs processus de manière contrôlée et gérée. Par défaut, le processus démarré hérite de tous les environnements PowerShell actuels.
la cmdlet Start-Process
peut exécuter ou exécuter un fichier exécutable, un script batch, une commande MS-DOS et PowerShell, voire une application Java. De plus, Windows PowerShell peut utiliser la cmdlet Start-Process
pour spécifier le profil utilisateur, l’état de Windows, les informations d’identification, etc.
Cet article explique comment fonctionne la cmdlet Start-Process
et l’utilise lors de l’écriture de nos scripts.
La cmdlet Start-Process
dans PowerShell
la cmdlet Start-Process
exécute un ou plusieurs processus, fichiers exécutables ou de script, ou tout fichier qu’un logiciel installé peut ouvrir sur l’ordinateur.
la cmdlet Start-Process
a une syntaxe de base illustrée ci-dessous lors de l’utilisation de Windows PowerShell.
Start-Process <string>
Les paramètres de la cmdlet Start-Process
la cmdlet Start-Process
peut utiliser des paramètres pour ajouter plus de puissance, de fonctionnalité et de flexibilité à la cmdlet.
Démarrer un nouveau processus ou exécutable
Comme mentionné, l’utilisation la plus basique de la commande Start-Process
est de fournir le fichier exécutable, le fichier batch ou script, ou la commande comme la syntaxe ci-dessous. Par exemple, une application Bloc-notes s’ouvrira lorsqu’elle sera appelée avec la syntaxe suivante.
Start-Process notepad.exe
Alternativement, la cmdlet peut utiliser le paramètre -FilePath
pour spécifier l’emplacement du fichier que nous voulons exécuter.
Start-Process -FilePath notepad.exe
Nous pouvons également spécifier le chemin complet du fichier exécutable ou du fichier batch ci-dessous. Dans l’exemple suivant, nous allons exécuter un fichier batch situé sous le répertoire D:\scripts
dans l’exemple suivant.
Start-Process -FilePath "D:\scripts\backup.bat"
Définir l’entrée standard comme fichier
Nous pouvons spécifier une entrée de processus avec l’entrée standard où le contenu d’entrée standard fourni est redirigé vers le processus donné. Dans ce cas, le paramètre -RedirectStandardInput
peut définir un fichier comme entrée dans le processus nouvellement créé.
Start-Process -FilePath "D:\scripts\backup.bat" -RedirectStandardInput test.txt
Dans l’exemple de syntaxe ci-dessus, l’entrée exécutable backup.bat
provient du fichier test.txt
.
Définir la sortie standard comme fichier
Lorsqu’un processus est exécuté, il peut créer une sortie que nous pouvons imprimer sur le terminal, l’écran ou le fichier. Nous pouvons utiliser le paramètre -RedirectStandardOuput
pour spécifier la sortie dans un fichier.
Start-Process -FilePath "D:\scripts\backup.bat" -RedirectStandardOutput test.txt
La sortie exécutable backup.bat
provient du fichier test.txt
dans l’exemple de syntaxe ci-dessus.
Définir la sortie d’erreur standard en tant que fichier
Lors de l’exécution d’un processus, des erreurs peuvent se produire et les informations sur ces erreurs sont imprimées dans la console ou le terminal par défaut. L’utilisation du paramètre -RedirectStandardError
peut rediriger la sortie dans un fichier comme ci-dessous.
Start-Process -FilePath "D:\scripts\backup.bat" -RedirectStandardError errors.txt
Dans l’exemple de syntaxe ci-dessus, si nous avons rencontré des erreurs lors de l’exécution de l’exécutable backup.bat
, les erreurs seront imprimées dans le fichier errors.txt
.
Définir le répertoire de travail
Par défaut, le nouveau processus est exécuté dans le répertoire de travail actuel, qui est généralement le lecteur système C:
. Cependant, nous pouvons définir un nouveau répertoire de travail ci-dessous en utilisant le paramètre -WorkingDirectory
.
Start-Process notepad.exe -WorkingDirectory "D:\"
Pour cet exemple,
Créer un nouvel environnement
Avec nos paramètres précédents discutés dans l’article, nous pouvons les fusionner en un seul bloc de script.
Le paramètre -UseNewEnvironment
précise que le processus s’exécute avec ses variables d’environnement.
$processOptions = @{
FilePath = "sort.exe"
RedirectStandardInput = "TestSort.txt"
RedirectStandardOutput = "Sorted.txt"
RedirectStandardError = "SortError.txt"
UseNewEnvironment = $true
}
Start-Process @processOptions
Start-Process
dans la fenêtre maximisée
La commande Start-Process
peut démarrer un processus de ligne de commande ou un processus GUI qui peut avoir une interface graphique.
Le script peut définir la taille de la fenêtre de l’interface graphique avec le paramètre -WindowStyle
. Ce paramètre peut être défini sur Agrandi pour agrandir la nouvelle fenêtre de processus.
Start-Process notepad.exe -WindowStyle Maximized
Start-Process
avec un autre utilisateur
Par défaut, le processus démarré est exécuté avec les privilèges de l’utilisateur actuel. Cependant, la cmdlet Start-Process
peut modifier les privilèges du processus avec le paramètre -Credential
en fournissant le nouvel utilisateur avec lequel nous voulons exécuter le processus.
Si vous saisissez votre nom d’utilisateur, vous serez invité à saisir un mot de passe.
Start-Process notepad.exe -Credential <username>
Start-Process
en tant qu’administrateur
On peut lancer l’application en tant qu’administrateur avec le paramètre - Verb
.
Start-Process notepad.exe -Verb RunAs
Remarque : PowerShell peut toujours avoir besoin de votre confirmation en raison du contrôle de compte d’utilisateur (UAC) de votre ordinateur local malgré l’exécution en tant qu’administrateur. Nous ne recommandons pas de désactiver entièrement l’UAC pour des raisons de sécurité.
Start-Process
avec des arguments spécifiés
Les commandes, les processus ou les fichiers de commandes peuvent accepter un ou plusieurs arguments pour obtenir des données d’entrée.
Ces données d’entrée sont appelées un argument, et la commande Start-Process
peut fournir des arguments au processus démarré avec la -ArgumentList
. Liste d’arguments fournie transmise aux processus en tant qu’arguments.
Start-Process -FilePath "$env:comspec" -ArgumentList "/c","dir","`"%systemdrive%\program files`""
Les avantages de PowerShell Start-Process
- Les fichiers de script ne peuvent être ouverts que localement. Il s’agit d’une technique de sécurité qui empêche les attaques à distance à l’aide de scripts Windows PowerShell.
- La cmdlet s’exécute dans un environnement de script pris en charge par Microsoft. Tant que Windows PowerShell est pris en charge, Microsoft consacrera des ressources pour maintenir le langage à jour, avec des révisions de mise à jour.
- Une vaste communauté de développeurs partage facilement ses connaissances spécifiquement avec la cmdlet
Start-Process
. - Les cmdlets et les magasins de données système utilisent une syntaxe et des conventions de dénomination standard et cohérentes pour partager facilement les données.
- Grâce à cette cmdlet, la navigation dans le système d’exploitation est simplifiée, ce qui permet aux utilisateurs de se familiariser avec le système de fichiers, le registre et d’autres données.
- Les objets peuvent être facilement manipulés directement ou envoyés à d’autres outils ou bases de données.
- Les éditeurs de logiciels et les développeurs peuvent créer des outils personnalisés.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn