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-Command
FilePath 매개 변수를 사용합니다. 파일을 복사할 필요가 없습니다. 예를 들어 다음 명령은 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 참조하세요.
참고 항목
PowerShell