about_Remote

간단한 설명

PowerShell에서 원격 명령을 실행하는 방법을 설명합니다.

자세한 설명

임시 또는 영구 연결을 사용하여 단일 또는 여러 원격 컴퓨터에서 원격 명령을 실행할 수 있습니다. 단일 원격 컴퓨터로 대화형 세션을 시작할 수도 있습니다.

참고 항목

PowerShell 원격을 사용하려면 원격에 대한 로컬 및 원격 컴퓨터를 구성해야 합니다. 자세한 내용은 about_Remote_Requirements 참조하세요.

대화형 세션을 시작하는 방법

원격 명령을 실행하는 가장 쉬운 방법은 원격 컴퓨터로 대화형 세션을 시작하는 것입니다.

세션이 시작되면 입력한 명령이 원격 컴퓨터에 직접 입력한 것처럼 원격 컴퓨터에서 실행됩니다. 각 대화형 세션에서 하나의 컴퓨터에만 연결할 수 있습니다.

대화형 세션을 시작하려면 cmdlet을 Enter-PSSession 사용합니다. 다음 명령은 Server01 컴퓨터에서 대화형 세션을 시작합니다.

Enter-PSSession Server01

PowerShell은 원격 컴퓨터의 이름을 포함하도록 명령 프롬프트를 변경합니다.

Server01\PS>

이제 Server01 컴퓨터에서 명령을 입력할 수 있습니다.

대화형 세션을 종료하려면 다음을 입력합니다.

Exit-PSSession

자세한 내용은 Enter-PSSession을 참조 하세요.

원격 명령을 실행하는 방법

원격 컴퓨터에서 다른 명령을 실행하려면 cmdlet을 Invoke-Command 사용합니다.

단일 명령 또는 관련 없는 몇 가지 명령을 실행하려면 ComputerName 매개 변수 Invoke-Command 를 사용하여 원격 컴퓨터를 지정합니다. ScriptBlock 매개 변수를 사용하여 명령을 지정합니다.

예를 들어 다음 명령은 Server01 컴퓨터에서 명령을 실행 Get-Culture 합니다.

Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Culture}

영구 연결을 만드는 방법

cmdlet의 ComputerName 매개 변수를 Invoke-Command 사용하는 경우 PowerShell은 원격 컴퓨터에 대한 임시 연결을 설정합니다. 명령이 완료되면 연결을 닫습니다. 이 임시 세션에 정의된 변수 또는 함수는 모두 손실됩니다.

원격 컴퓨터에 대한 영구 연결을 만들려면 cmdlet을 New-PSSession 사용합니다. 예를 들어 다음 명령은 Server01 및 Server02 컴퓨터에 PSSessions를 만든 다음 PSSessions를 변수에 $s 저장합니다.

$s = New-PSSession -ComputerName Server01, Server02

PSSession에서 명령을 실행하는 방법

PSSession을 사용하면 함수, 별칭 및 변수 값과 같은 데이터를 공유하는 일련의 원격 명령을 실행할 수 있습니다. PSSession에서 명령을 실행하려면 cmdlet의 Session 매개 변수를 Invoke-Command 사용합니다.

예를 들어 다음 명령은 cmdlet을 사용하여 Invoke-Command Server01 및 Server02 컴퓨터의 PSSessions에서 명령을 실행 Get-Process 합니다. 이 명령은 각 PSSession의 $p 변수에 프로세스를 저장합니다.

Invoke-Command -Session $s -ScriptBlock {$p = Get-Process}

PSSession은 영구 연결을 사용하므로 변수를 사용하는 $p 동일한 PSSession에서 다른 명령을 실행할 수 있습니다. 다음 명령은 에 저장된 프로세스 수를 계산합니다 $p.

Invoke-Command -Session $s -ScriptBlock {$p.count}

여러 컴퓨터에서 원격 명령을 실행하는 방법

여러 컴퓨터에서 원격 명령을 실행하려면 ComputerName 매개 변수 Invoke-Command에 모든 컴퓨터 이름을 입력합니다. 이름을 쉼표로 구분합니다.

예를 들어 다음 명령은 세 대의 컴퓨터에서 Get-Culture 명령을 실행합니다.

Invoke-Command -ComputerName S1, S2, S3 -ScriptBlock {Get-Culture}

여러 PSSessions에서 명령을 실행할 수도 있습니다. 다음 명령은 Server01, Server02 및 Server03 컴퓨터에서 PSSessions를 만든 다음 각 PSSessions에서 명령을 실행 Get-Culture 합니다.

$s = New-PSSession -ComputerName S1, S2, S3
Invoke-Command -Session $s -ScriptBlock {Get-Culture}

컴퓨터의 로컬 컴퓨터 목록을 포함하려면 로컬 컴퓨터의 이름을 입력하거나 점(.)을 입력하거나 입력합니다 localhost.

Invoke-Command -ComputerName S1, S2, S3, localhost -ScriptBlock {Get-Culture}

원격 컴퓨터에서 스크립트를 실행하는 방법

원격 컴퓨터에서 로컬 스크립트를 실행하려면 .의 Invoke-CommandFilePath 매개 변수를 사용합니다. 파일을 복사할 필요가 없습니다. 예를 들어 다음 명령은 S1 및 S2 컴퓨터에서 스크립트를 실행 Sample.ps1 합니다.

Invoke-Command -ComputerName S1, S2 -FilePath C:\Test\Sample.ps1

PowerShell은 스크립트의 결과를 로컬 컴퓨터에 반환합니다.

원격 명령을 중지하는 방법

명령을 중단하려면 Ctrl c+누릅니다. PowerShell은 원격 명령을 종료하는 원격 컴퓨터에 인터럽트 요청을 전달합니다.

자세한 내용

  • 원격에 대한 시스템 요구 사항에 대한 자세한 내용은 about_Remote_Requirements 참조하세요.

  • 원격 출력의 서식 지정에 대한 도움말은 about_Remote_Output 참조하세요.

  • 원격 작동 방식, 원격 데이터 관리 방법, 특수 구성, 보안 문제 및 기타 자주 묻는 질문에 대한 자세한 내용은 PowerShell 원격 FAQ를 참조 하세요.

  • 원격 오류 해결에 대한 도움말은 about_Remote_Troubleshooting 참조하세요.

  • PSSessions 및 영구 연결에 대한 자세한 내용은 about_PSSessions 참조하세요.

  • PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobs 참조하세요.

참고 항목