항목
about_Remote
간단한 설명
Windows PowerShell에서 원격 명령을 실행하는 방법에 대해 설명합니다.
자세한 설명
임시 또는 영구 연결을 사용하여 한 컴퓨터나 여러 컴퓨터에서 원격 명령을 실행할 수 있습니다. 한 원격
컴퓨터와 대화형 세션을 시작할 수도 있습니다.
이 항목에서는 여러 종류의 원격 명령을 실행하는 방법을 보여 주는 일련의 예를 제공합니다. 이러한 기본
명령을 시도한 후 이러한 명령에서 사용되는 각 cmdlet에 대해 설명하는 도움말 항목을 읽으십시오. 이러한
항목에서는 자세한 정보를 제공하고 요구에 맞게 명령을 수정하는 방법에 대해 설명합니다.
참고: Windows PowerShell 원격을 사용하려면 원격 기능을 사용하도록 로컬 및 원격 컴퓨터를 구성해야
합니다. 자세한 내용은 about_Remote_Requirements를 참조하십시오.
대화형 세션을 시작하는 방법(ENTER-PSSESSION)
원격 명령을 실행하는 가장 쉬운 방법은 원격 컴퓨터와 대화형 세션을 시작하는 것입니다.
세션이 시작될 때 사용자가 입력하는 명령은 원격 컴퓨터에서 직접 입력하는 것처럼 원격 컴퓨터에서
실행됩니다. 각 대화형 세션에서 한 컴퓨터에만 연결할 수 있습니다.
대화형 세션을 시작하려면 Enter-PSSession cmdlet을 사용합니다. 다음 명령은 Server01 컴퓨터와
대화형 세션을 시작합니다.
enter-pssession server01
명령 프롬프트가 변경되어 Server01 컴퓨터에 연결되어 있음을 나타냅니다.
Server01\PS>
이제 Server01 컴퓨터에서 명령을 입력할 수 있습니다.
대화형 세션을 종료하려면 다음과 같이 입력하십시오.
exit-pssession
자세한 내용은 Enter-PSSession을 참조하십시오.
ComputerName 매개 변수가 있는 cmdlet을 사용하여 원격 데이터를 가져오는 방법
몇 가지 cmdlet에는 원격 컴퓨터에서 개체를 가져오는 데 사용할 수 있는 ComputerName 매개 변수가
있습니다.
이러한 cmdlet은 WS-Management 기반 Windows PowerShell 원격을 사용하지 않기 때문에 Windows
PowerShell을 실행하는 임의의 컴퓨터에서 이러한 cmdlet의 ComputerName 매개 변수를 사용할 수 있습니다.
이러한 컴퓨터는 Windows PowerShell 원격을 사용하도록 구성될 필요가 없으며 원격 기능에 대한 시스템
요구 사항을 충족할 필요가 없습니다.
다음 cmdlet에는 ComputerName 매개 변수가 있습니다.
Clear-EventLog Limit-EventLog
Get-Counter New-EventLog
Get-EventLog Remove-EventLog
Get-HotFix Restart-Computer
Get-Process Show-EventLog
Get-Service Show-Service
Get-WinEvent Stop-Computer
Get-WmiObject Write-EventLog
예를 들어 다음 명령은 Server01 원격 컴퓨터에서 서비스를 가져옵니다.
get-service -computername server01
일반적으로 특별한 구성 없이 원격 기능을 지원하는 cmdlet에는 ComputerName 매개 변수가
있고 Session 매개 변수는 없습니다. 세션에서 이러한 cmdlet을 찾으려면 다음과 같이
입력하십시오.
get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}
원격 명령을 실행하는 방법
원격 컴퓨터에서 다른 명령을 실행하려면 Invoke-Command cmdlet을 사용합니다.
한 명령이나 관련되지 않은 몇 가지 명령을 실행하려면 Invoke-Command의 ComputerName 매개 변수를
사용하여 원격 컴퓨터를 지정합니다. 명령을 지정하려면 ScriptBlock 매개 변수를 사용합니다.
예를 들어 다음 명령은 Server01 컴퓨터에서 Get-Culture 명령을 실행합니다.
invoke-command -computername Server01 -scriptblock {get-culture}
ComputerName 매개 변수는 하나 이상의 컴퓨터에서 한 명령이나 관련되지 않은 몇 가지 명령을 실행하는
상황에서 사용하도록 설계되었습니다.
원격 컴퓨터에 영구 연결을 설정하려면 Session 매개 변수를 사용합니다.
영구 연결을 만드는 방법(PSSession)
Invoke-Command cmdlet의 ComputerName 매개 변수를 사용하는 경우 Windows PowerShell은 이
명령에만 사용되는 연결을 설정한 다음 명령이 완료될 때 연결을 닫습니다. 명령에 정의되어
있는 변수나 함수는 모두 손실됩니다.
원격 컴퓨터에 대한 영구 연결을 만들려면 New-PSSession cmdlet을 사용합니다. 예를 들어 다음 명령은
Server01 및 Server02 컴퓨터에서 PSSession을 만든 다음 $s 변수에 저장합니다.
$s = new-pssession -computername Server01, Server02
PSSession에서 명령을 실행하는 방법
PSSession을 사용하여 함수, 별칭, 변수 값 등의 데이터를 공유하는 일련의 원격 명령을 실행할 수 있습니다.
PSSession에서 명령을 실행하려면 Invoke-Command cmdlet의 Session 매개 변수를 사용합니다.
예를 들어 다음 명령은 Invoke-Command cmdlet을 사용하여 Server01 및 Server02 컴퓨터의 PSSession에서
Get-Process 명령을 실행합니다. 이 명령은 각 PSSession에서 $p 변수에 프로세스를 저장합니다.
invoke-command -session $s -scriptblock {$p = get-process}
PSSession에서 영구 연결을 사용하기 때문에 $p 변수를 사용하는 동일한 PSSession에서 다른 명령을 실행할
수 있습니다. 다음 명령은 $p에 저장된 프로세스의 수를 셉니다.
invoke-command -session $s -scriptblock {$p.count}
여러 컴퓨터에서 원격 명령을 실행하는 방법
여러 컴퓨터에서 원격 명령을 실행하려면 Invoke-Command의 ComputerName 매개 변수 값에 컴퓨터
이름을 모두 입력합니다. 이름을 쉼표로 구분하십시오.
예를 들어 다음 명령은 세 컴퓨터에서 Get-Culture 명령을 실행합니다.
invoke-command -computername S1, S2, S3 -scriptblock {get-culture}
여러 PSSession에서 명령을 실행할 수도 있습니다. 다음 명령은 Server01, Server02 및
Server03 컴퓨터에서 PSSession을 만든 다음 각 PSSession에서 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
스크립트의 결과는 로컬 컴퓨터로 반환됩니다. 파일을 복사할 필요는 없습니다.
원격 명령을 중지하는 방법
명령을 중단하려면 Ctrl+C를 누릅니다. 중단 요청은 원격 명령을 종료하는 원격 컴퓨터로 전달됩니다.
자세한 내용
-- 원격 기능의 시스템 요구 사항에 대한 자세한 내용은 about_Remote_Requirements를 참조하십시오.
-- 원격 출력의 형식 지정에 대한 도움말은 about_Remote_Output을 참조하십시오.
-- 원격 기능의 작동 방식, 원격 데이터 관리 방법, 특수 구성, 보안 문제 및 기타 질문과 대답에 대한 자세한
내용은 about_Remote_FAQ를 참조하십시오.
-- 원격 기능 오류 해결에 대한 도움말은 about_Remote_Troubleshooting을 참조하십시오.
-- PSSession과 영구 연결에 대한 자세한 내용은 about_PSSessions를 참조하십시오.
-- Windows PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobs를 참조하십시오.
키워드
about_Remoting
참고 항목
about_PSSessions
about_Remote_Requirements
about_Remote_FAQ
about_Remote_TroubleShooting
Enter-PSSession
Invoke-Command
New-PSSession