Recherche de site Web

Switch-Process (Microsoft.PowerShell.Core)


Switch-Process

Modules :
Microsoft.PowerShell.Core

Sous Linux et macOS, l'applet de commande appelle la fonction execv() pour fournir un comportement similaire à celui des shells POSIX.

Syntaxe

Switch-Process
      [[-WithCommand] <String[]>]
      [<CommonParameters>]

Description

Certaines commandes Unix natives exécutent quelque chose (comme ssh) et utilisent la commande intégrée bash exec pour générer un nouveau processus qui remplace celui actuel. Par défaut, exec n'est pas une commande valide dans PowerShell. Cela affecte certains scripts connus comme copy-ssh-id et certaines sous-commandes d'AzCLI.

L'applet de commande Switch-Process appelle la fonction native execv() pour fournir un comportement similaire à celui des shells POSIX. Cette applet de commande et son alias, exec, ont été ajoutés dans PowerShell 7.3.0.

PowerShell 7.3.1 a modifié l'alias exec en une fonction qui encapsule Switch-Process. La fonction vous permet de transmettre des paramètres à la commande native qui pourraient avoir été liés par erreur au paramètre WithCommand.

Cette applet de commande est uniquement disponible pour les systèmes non Windows.

Exemples

Exemple 1 - Exécuter une commande qui dépend de `exec`

Cet exemple suppose que PowerShell est le shell par défaut sur un système non Windows. ssh-copy-id est un script bash populaire pour déployer des clés publiques sur les machines cibles pour une authentification par clé. Le script dépend de la commande bash, exec.

ssh-copy-id user@host

Avec la fonctionnalité PSExec activée, le script ssh-copy-id réussit.

Paramètres

-WithCommand

Spécifie l'exécutable natif (et tous les paramètres) à exécuter. Toutes les valeurs supplémentaires passées en arguments sont transmises sous forme de tableau de chaînes à exécuter avec la première commande.

La commande cible doit être un exécutable natif et non une commande PowerShell.

Taper :

String[]

Position:

0

Valeur par défaut :

None

Requis:

False

Accepter l'entrée du pipeline :

False

Acceptez les caractères génériques :

False

Entrées

Chaîne[]

Sorties

Objet

Remarques

L'applet de commande Switch-Process a été créée pour assurer la compatibilité exec avec d'autres shells POSIX. Dans des conditions normales, l’applet de commande n’est pas destinée à être utilisée dans les scripts PowerShell. Switch-Process n'a pas de parité de fonctionnalités avec la fonction exec intégrée dans les shells POSIX, comme la façon dont les descripteurs de fichiers sont gérés, mais devrait couvrir la plupart des cas.

Articles connexes