Switch-Process (Microsoft.PowerShell.Core)
Switch-Process
- Módulo:
- Microsoft.PowerShell.Core
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>]Descripción
Algunos comandos nativos de Unix pagan para ejecutar algo (como ssh) y usan el comando incorporado bash exec para generar un nuevo proceso que reemplaza al actual. De forma predeterminada, exec no es un comando válido en PowerShell. Esto afecta algunos scripts conocidos como copy-ssh-id y algunos subcomandos de AzCLI.
El cmdlet Switch-Process llama a la función nativa execv() 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 exec a una función que envuelve Switch-Process. La función le permite pasar parámetros al comando nativo que podrían haberse vinculado 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`
Este ejemplo supone que PowerShell es el shell predeterminado en un sistema que no es Windows. ssh-copy-id es un script bash popular para implementar claves públicas en máquinas de destino para la autenticación basada en claves. El script depende del comando bash, exec.
ssh-copy-id user@hostCon la función PSExec habilitada, el script ssh-copy-id tiene éxito.
Parámetros
-WithCommand
Especifica el ejecutable nativo (y cualquier parámetro) que se 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
Cadena[]
Salidas
Objeto
Notas
El cmdlet Switch-Process se creó para proporcionar compatibilidad exec con otros shells POSIX. En condiciones normales, el cmdlet no está diseñado para usarse en scripts de PowerShell. Switch-Process no tiene paridad de funciones con la función exec incorporada en los shells POSIX, como por ejemplo cómo se manejan los descriptores de archivos, pero debería cubrir la mayoría de los casos.