Switch-Process

Linux および macOS では、このコマンドレットは関数を execv() 呼び出して POSIX シェルと同様の動作を提供します。

構文

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

説明

一部のネイティブ Unix コマンドでは、何らかの操作 (ssh など) を実行し、bash の組み込みのコマンド exec を使用して、現在のものを置き換える新しいプロセスを生成します。 既定では、exec は PowerShell の有効なコマンドではありません。 これは、AzCLI の copy-ssh-id や一部のサブコマンドなど、いくつかの既知のスクリプトに影響します。

このコマンドレットは Switch-Process 、POSIX シェルと同様の動作を提供するためにネイティブ execv() 関数を呼び出します。 このコマンドレットとそのエイリアスは、 execPowerShell 7.3.0 で追加されました。

PowerShell 7.3.1 では、exec エイリアスが Switch-Process をラップする関数に変更されました。 関数を使用すると、WithCommand パラメーターに誤ってバインドされている可能性のあるパラメーターをネイティブ コマンドに渡すことができます。

このコマンドレットは、Windows 以外のシステムでのみ使用できます。

例 1 - 'exec' に依存するコマンドを実行する

この例では、PowerShell が Windows 以外のシステムの既定のシェルであることを前提としています。 ssh-copy-id は、キーベースの認証のためにターゲット マシンに公開キーをデプロイするための一般的な bash スクリプトです。 スクリプトは bash コマンド execによって異なります。

ssh-copy-id user@host

この機能を PSExec 有効にすると、スクリプトは ssh-copy-id 成功します。

パラメーター

-WithCommand

実行するネイティブ実行可能ファイル (およびすべてのパラメーター) を指定します。 引数として渡されるすべての追加値は、最初のコマンドで実行される文字列の配列として渡されます。

ターゲット コマンドは、PowerShell コマンドではなくネイティブ実行可能ファイルである必要があります。

Type:String[]
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

入力

String[]

出力

Object

メモ

互換性を Switch-Process 提供 exec するために作成されたコマンドレットは、他の POSIX シェルです。 通常の条件下では、コマンドレットは PowerShell スクリプトで使用することを意図していません。 Switch-Process は、ファイル記述子の処理方法など、POSIX シェルの exec 組み込み関数と同等の機能を持ちませんが、ほとんどの場合に対応する必要があります。