Partager via


Switch-Process

Sur Linux et macOS, l’applet de commande appelle la fonction execv() pour fournir un comportement similaire à celui des interpréteurs de commandes 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 commande intégrée bashexec 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 tels que copy-ssh-id et certaines sous-commandes d’AzCLI.

L’applet de commande Switch-Process appelle la fonction execv() native pour fournir un comportement similaire à celui des interpréteurs de commandes 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 de exec en fonction qui encapsule Switch-Process. La fonction vous permet de passer des paramètres à la commande native susceptible d’être liée 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 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 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

Le cmdlet Switch-Process a été créé pour fournir exec compatibilité 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é avec la fonction exec intégrée 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.