Búsqueda de sitios web

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@host

Con 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.

Artículos relacionados