간단한 설명
PowerShell에서 원격 명령을 실행하는 방법을 설명합니다.
긴 설명
임시 또는 영구 연결을 사용하여 단일 또는 여러 원격 컴퓨터에서 원격 명령을 실행할 수 있습니다. 단일 원격 컴퓨터로 대화형 세션을 시작할 수도 있습니다.
참고 항목
PowerShell 원격을 사용하려면 원격에 대한 로컬 및 원격 컴퓨터를 구성해야 합니다. 자세한 내용은 about_Remote_Requirements 참조하세요.
대화형 세션을 시작하는 방법
원격 명령을 실행하는 가장 쉬운 방법은 원격 컴퓨터로 대화형 세션을 시작하는 것입니다.
세션이 시작되면 입력한 명령이 원격 컴퓨터에 직접 입력한 것처럼 원격 컴퓨터에서 실행됩니다. 각 대화형 세션에서 하나의 컴퓨터에만 연결할 수 있습니다.
대화형 세션을 시작하려면 cmdlet을 Enter-PSSession 사용합니다. 다음 명령은 Server01 컴퓨터에서 대화형 세션을 시작합니다.
Enter-PSSession Server01
PowerShell은 원격 컴퓨터의 이름을 포함하도록 명령 프롬프트를 변경합니다.
Server01\PS>
이제 Server01 컴퓨터에서 명령을 입력할 수 있습니다.
대화형 세션을 종료하려면 다음을 입력합니다.
Exit-PSSession
자세한 내용은 Enter-PSSession을 참조 하세요.
원격 명령을 실행하는 방법
원격 컴퓨터에서 다른 명령을 실행하려면 cmdlet을 Invoke-Command 사용합니다.
단일 명령 또는 관련 없는 몇 가지 명령을 실행하려면 ComputerName원격 컴퓨터를 지정합니다. 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에 모든 컴퓨터 이름을 입력합니다. 이름을 쉼표로 구분합니다.
예를 들어 다음 명령은 세 대의 컴퓨터에서 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}
원격 컴퓨터에서 스크립트를 실행하는 방법
원격 컴퓨터에서 로컬 스크립트를 실행하려면 .의 FilePathInvoke-Command사용합니다. 파일을 복사할 필요가 없습니다. 예를 들어 다음 명령은 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