다음을 통해 공유


Switch-Process

Linux 및 macOS에서 cmdlet은 execv() 함수를 호출하여 POSIX 셸과 유사한 동작을 제공합니다.

구문

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

Description

일부 네이티브 Unix 명령은 ssh와 같은 항목을 실행하고 bash 기본 제공 명령 exec 사용하여 현재 프로세스를 대체하는 새 프로세스를 생성합니다. 기본적으로 exec PowerShell에서 유효한 명령이 아닙니다. 이는 copy-ssh-id 같은 일부 알려진 스크립트 및 AzCLI의 일부 하위 명령에 영향을 줍니다.

Switch-Process cmdlet은 네이티브 execv() 함수를 호출하여 POSIX 셸과 유사한 동작을 제공합니다. 이 cmdlet 및 해당 별칭인 execPowerShell 7.3.0에 추가되었습니다.

PowerShell 7.3.1은 exec 별칭을 Switch-Process래핑하는 함수로 변경했습니다. 이 함수를 사용하면 WithCommand 매개 변수에 잘못 바인딩될 수 있는 네이티브 명령에 매개 변수를 전달할 수 있습니다.

이 cmdlet은 비 Windows 시스템에서만 사용할 수 있습니다.

예제

예제 1 - 'exec'에 의존하는 명령 실행

이 예제에서는 PowerShell이 Windows가 아닌 시스템의 기본 셸이라고 가정합니다. ssh-copy-id 키 기반 인증을 위해 대상 컴퓨터에 공개 키를 배포하는 인기 있는 bash 스크립트입니다. 스크립트는 bash 명령 exec따라 달라집니다.

ssh-copy-id user@host

PSExec 기능을 사용하도록 설정하면 ssh-copy-id 스크립트가 성공합니다.

매개 변수

-WithCommand

실행할 네이티브 실행 파일(및 매개 변수)을 지정합니다. 인수로 전달된 모든 추가 값은 첫 번째 명령으로 실행할 문자열 배열로 전달됩니다.

대상 명령은 PowerShell 명령이 아닌 네이티브 실행 파일이어야 합니다.

형식:String[]
Position:0
Default value:None
필수:False
파이프라인 입력 허용:False
와일드카드 문자 허용:False

입력

String[]

출력

Object

참고

Switch-Process cmdlet은 다른 POSIX 셸과 exec 호환성을 제공하기 위해 만들어졌습니다. 정상적인 조건에서 cmdlet은 PowerShell 스크립트에서 사용할 수 없습니다. Switch-Process 파일 설명자가 처리되는 방식과 같이 POSIX 셸의 기본 제공 exec 함수와 기능 패리티가 없지만 대부분의 경우를 다루어야 합니다.