Switch-Process
I Linux och macOS anropar cmdleten funktionen execv()
för att tillhandahålla liknande beteende som POSIX-gränssnitt.
Syntax
Switch-Process
[[-WithCommand] <String[]>]
[<CommonParameters>]
Description
Vissa inbyggda Unix-kommandon kör något (till exempel ssh) och använder det bash
inbyggda kommandot exec
för att skapa en ny process som ersätter den aktuella. Som standard är exec
inte ett giltigt kommando i PowerShell. Detta påverkar vissa kända skript som copy-ssh-id
och vissa underkommandon för AzCLI.
Cmdleten Switch-Process
anropar funktionen native execv()
för att tillhandahålla liknande beteende som POSIX-gränssnitt. Den här cmdleten och dess alias, exec
, lades till i PowerShell 7.3.0.
PowerShell 7.3.1 ändrade exec
alias till en funktion som omsluter Switch-Process
. Med funktionen kan du skicka parametrar till det interna kommandot som kan ha felaktigt bundet till parametern WithCommand.
Den här cmdleten är endast tillgänglig för system som inte är Windows-system.
Exempel
Exempel 1 – Kör ett kommando som är beroende av "exec"
Det här exemplet förutsätter att PowerShell är standardgränssnittet i ett system som inte är Windows.
ssh-copy-id
är ett populärt bash-skript för att distribuera offentliga nycklar på måldatorer för nyckelbaserad autentisering. Skriptet beror på bash-kommandot exec
.
ssh-copy-id user@host
Med funktionen PSExec
aktiverad lyckas ssh-copy-id
-skriptet.
Parametrar
-WithCommand
Anger den inbyggda körbara filen (och eventuella parametrar) som ska köras. Alla ytterligare värden som skickas som argument skickas som en matris med strängar som ska köras med det första kommandot.
Målkommandot måste vara en intern körbar fil, inte ett PowerShell-kommando.
Typ: | String[] |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
String[]
Utdata
Kommentarer
Cmdleten Switch-Process
skapades för att ge exec
kompatibilitet är andra POSIX-gränssnitt. Under normala förhållanden är cmdleten inte avsedd att användas i PowerShell-skript.
Switch-Process
har inte funktionsparitet med den inbyggda exec
funktionen i POSIX-gränssnitt, till exempel hur filbeskrivningar hanteras, men bör omfatta de flesta fall.