Compartir a través de


Switch-Process

En Linux y macOS, el cmdlet llama a la función execv() para proporcionar un comportamiento similar al de los shells POSIX.

Sintaxis

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

Description

Algunos comandos nativos de Unix ejecutan algo (como ssh) y usan el comando integrado bashexec para generar un nuevo proceso que reemplace el actual. De forma predeterminada, exec no es un comando válido en PowerShell. Esto afecta a algunos scripts conocidos como copy-ssh-id y algunos subcomandos de AzCLI.

El cmdlet Switch-Process llama a la función execv() nativa para proporcionar un comportamiento similar al de los shells POSIX. Este cmdlet y su alias, exec, se agregaron en PowerShell 7.3.0.

PowerShell 7.3.1 cambió el alias de exec a una función que encapsula Switch-Process. La función permite pasar parámetros al comando nativo que podría haberse enlazado erróneamente al parámetro WithCommand.

Este cmdlet solo está disponible para sistemas que no son windows.

Ejemplos

Ejemplo 1: Ejecutar un comando que depende de "exec"

En este ejemplo se supone que PowerShell es el shell predeterminado en un sistema que no es Windows. ssh-copy-id es un script de Bash popular para implementar claves públicas en las máquinas de destino para la autenticación basada en claves. El script depende del comando bash, exec.

ssh-copy-id user@host

Con la característica PSExec habilitada, el script de ssh-copy-id se realiza correctamente.

Parámetros

-WithCommand

Especifica el ejecutable nativo (y los parámetros) que se van a ejecutar. Todos los valores adicionales pasados como argumentos se pasan como una matriz de cadenas que se ejecutarán con el primer comando.

El comando de destino debe ser un ejecutable nativo, no un comando de PowerShell.

Tipo:String[]
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

String[]

Salidas

Object

Notas

El cmdlet Switch-Process se creó para proporcionar exec compatibilidad es otros shells POSIX. En condiciones normales, el cmdlet no está pensado para usarse en scripts de PowerShell. Switch-Process no tiene paridad de características con la función de exec integrada en shells POSIX, como el modo en que se controlan los descriptores de archivo, pero debe abarcar la mayoría de los casos.