Switch-Process
Sur Linux et macOS, l’applet de commande appelle la execv() fonction pour fournir un comportement similaire à celui des shells POSIX.
Syntaxe
Default (Par défaut)
Switch-Process
[[-WithCommand] <String[]>]
[<CommonParameters>]
Description
Certaines commandes Unix natives s’exécutent pour exécuter quelque chose (comme ssh) et utiliser la bash commande exec intégrée pour générer un nouveau processus qui remplace le processus 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 Switch-Process de commande appelle la fonction native execv() pour fournir un comportement similaire à celui des interpréteurs de commandes POSIX. Cette applet de commande et son alias ont execété ajoutés dans PowerShell 7.3.0.
PowerShell 7.3.1 a changé l’alias exec en une fonction qui encapsule Switch-Process. La fonction permet de passer des paramètres à la commande native qui ont pu être liés par erreur au paramètre WithCommand .
Cette applet de commande est disponible uniquement pour les systèmes non Windows.
Exemples
Exemple 1 : Exécuter une commande qui dépend de « exec »
Cet exemple suppose que PowerShell est l’interpréteur de commandes 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 des machines cibles pour l’authentification basée sur des clés. Le script dépend de la commande bash. exec
ssh-copy-id user@host
Une fois la PSExec fonctionnalité activée, le ssh-copy-id script 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 tant qu’arguments sont passées en tant que 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.
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: | 0 |
| 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
String
Sorties
Object
Notes
L’applet Switch-Process de commande a été créée pour assurer la exec compatibilité est d’autres interpréteurs de commandes 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é avec la fonction intégrée exec dans les interpréteurs de commandes POSIX, comme la façon dont les descripteurs de fichiers sont gérés, mais doit couvrir la plupart des cas.