단일 Windows PowerShell 명령을 사용하여 하나 또는 수백 대의 컴퓨터에서 명령을 실행할 수 있습니다. Windows PowerShell은 WMI, RPC 및 WS-Management를 비롯한 다양한 기술을 사용하여 원격 컴퓨팅을 지원합니다.

구성 없이 원격 기능 지원

많은 Windows PowerShell cmdlet에는 하나 이상의 원격 컴퓨터에서 데이터를 수집하고 설정을 변경할 수 있도록 해주는 ComputerName 매개 변수가 있습니다. 이들은 다양한 통신 기술을 사용하며 대개 Windows PowerShell이 특별한 구성 없이 지원하는 모든 Windows 운영 체제에서 작동합니다.

이러한 cmdlet에는 다음이 포함됩니다.

일반적으로 특별한 구성 없이 원격 기능을 지원하는 cmdlet에는 ComputerName 매개 변수가 있고 Session 매개 변수는 없습니다. 세션에서 이러한 cmdlet을 찾으려면 다음과 같이 입력하십시오.

get-command | where { $_.parameters.keys -contains "ComputerName" -and $_.parameters.keys -notcontains "Session"}

Windows PowerShell 원격 기능

WS-Management 프로토콜을 사용하는 Windows PowerShell 원격 기능은 하나 또는 여러 원격 컴퓨터에서 모든 Windows PowerShell 명령을 실행하고, 영구 연결을 설정하고, 1:1 대화형 세션을 시작하고, 여러 컴퓨터에서 스크립트를 실행할 수 있도록 해줍니다.

Windows PowerShell 원격 기능을 사용하려면 원격 관리를 사용하도록 원격 컴퓨터를 구성해야 합니다. 지침을 비롯한 자세한 내용은 about_Remote_Requirements를 참조하십시오.

Windows PowerShell 원격 기능을 구성한 후에는 여러 가지 원격 전략을 사용할 수 있습니다. 이 문서의 나머지 부분에서 설명하는 전략은 그 중 일부일 뿐입니다. 자세한 내용은 about_Remoteabout_Remote_FAQ를 참조하십시오.

대화형 세션 시작

하나의 원격 컴퓨터와 대화형 세션을 시작하려면 Enter-PSSession cmdlet을 사용합니다. 예를 들어 Server01 원격 컴퓨터와 대화형 세션을 시작하려면 다음과 같이 입력하십시오.

enter-pssession Server01

명령 프롬프트가 변경되어 연결된 컴퓨터의 이름을 표시합니다. 여기에서부터 프롬프트에 입력하는 모든 명령은 원격 컴퓨터에서 실행되고 결과가 로컬 컴퓨터에 표시됩니다.

대화형 세션을 종료하려면 다음과 같이 입력하십시오.

exit-pssession

Enter-PSSession 및 Exit-PSSession cmdlet에 대한 자세한 내용은 Enter-PSSessionExit-PSSession을 참조하십시오.

원격 명령 실행

하나 또는 여러 원격 컴퓨터에서 명령을 실행하려면 Invoke-Command cmdlet을 사용하십시오. 예를 들어 Server01 및 Server02 원격 컴퓨터에서 Get-UICulture 명령을 실행하려면 다음과 같이 입력하십시오.

invoke-command -computername Server01, Server02 {get-UICulture}

출력은 사용자의 컴퓨터로 반환됩니다.

LCID    Name     DisplayName               PSComputerName
----    ----     -----------               --------------
1033    en-US    English (United States)   server01.corp.fabrikam.com
1033    en-US    English (United States)   server02.corp.fabrikam.com

Invoke-Command cmdlet에 대한 자세한 내용은 Invoke-Command를 참조하십시오.

스크립트 실행

하나 또는 여러 원격 컴퓨터에서 스크립트를 실행하려면 Invoke-Command cmdlet의 FilePath 매개 변수를 사용하십시오. 스크립트는 로컬 컴퓨터에 있거나 로컬 컴퓨터에서 액세스할 수 있어야 합니다. 결과는 사용자의 로컬 컴퓨터로 반환됩니다.

예를 들어 다음 명령은 Server01 및 Server02 원격 컴퓨터에서 DiskCollect.ps1 스크립트를 실행합니다.

invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1

Invoke-Command cmdlet에 대한 자세한 내용은 Invoke-Command를 참조하십시오.

영구 연결 설정

데이터를 공유하는 일련의 관련 명령을 실행하려면 원격 컴퓨터에서 세션을 만든 다음 Invoke-Command cmdlet을 사용하여 사용자가 직접 만든 세션에서 명령을 실행합니다. 원격 세션을 만들려면 New-PSSession cmdlet을 사용합니다.

예를 들어 다음 명령은 Server01 컴퓨터에 원격 세션을 만들고 Server02 컴퓨터에 다른 원격 세션을 만듭니다. 그리고 세션 개체를 $s 변수에 저장합니다.

$s = new-pssession -computername Server01, Server02

세션이 설정된 후에는 세션에서 명령을 실행할 수 있습니다. 세션은 영구적이기 때문에 한 명령에서 데이터를 수집하여 후속 명령에서 사용할 수 있습니다.

예를 들어 다음 명령은 $s 변수에 있는 세션에서 Get-Hotfix 명령을 실행하고 그 결과를 $h 변수에 저장합니다. $h 변수는 $s에 있는 각 세션에서 만들어지지만 로컬 세션에는 존재하지 않습니다.

invoke-command -session $s {$h = get-hotfix}

이제 $h 변수에 있는 데이터를 다음과 같은 후속 명령에서 사용할 수 있습니다. 결과는 로컬 컴퓨터에 표시됩니다.

invoke-command -session $s {$h | where {$_.installedby -ne "NTAUTHORITY\SYSTEM"

고급 원격 기능

Windows PowerShell 원격 관리는 바로 여기에서 시작됩니다. Windows PowerShell과 함께 설치된 cmdlet을 사용함으로써 로컬 및 원격 끝 모두에서 원격 세션을 설정 및 구성하고, 사용자 지정된 세션 및 제한된 세션을 만들고, 원격 세션에서 암시적으로 실제 실행되는 원격 세션으로부터 사용자가 명령을 가져올 수 있도록 허용하고, 원격 세션의 보안을 구성할 수 있습니다.

원격 구성을 쉽게 수행할 수 있도록 Windows PowerShell에는 WS-Management 공급자가 포함되어 있습니다. 공급자가 만드는 WSMAN: 드라이브에서 로컬 컴퓨터 및 원격 컴퓨터의 구성 설정 계층 구조를 탐색할 수 있습니다. WS-Management 공급자에 대한 자세한 내용은 WSMan Providerabout_WS-Management_Cmdlets를 참조하거나 Windows PowerShell 콘솔에서 "get-help wsman"을 입력하십시오.

자세한 내용은 about_Remote_FAQ, New-PSSessionConfigurationImport-PSSession을 참조하십시오. 원격 기능 오류에 대한 자세한 내용은 about_Remote_Troubleshooting을 참조하십시오.

참고 항목




목차