Windows PowerShell Remoting
WS-Management 프로토콜을 사용하는 Windows PowerShell 원격 기능을 사용하면 하나 이상의 원격 컴퓨터에서 Windows PowerShell 명령을 실행할 수 있습니다. 영구 연결을 설정하고 1 : 1 대화식 세션을 시작하며 여러 컴퓨터에서 스크립트를 실행할 수 있습니다.
Windows PowerShell 원격을 사용하려면 원격 컴퓨터를 원격 관리 용으로 구성해야합니다.
Windows PowerShell 원격을 구성한 후에는 많은 원격 전략을 사용할 수 있습니다. 이 문서의 나머지 부분에는 그 중 일부만 나와 있습니다.
대화 형 세션 시작
단일 원격 컴퓨터와의 대화 형 세션을 시작하려면 Enter-PSSession cmdlet을 사용합니다. 예를 들어, Server01 원격 컴퓨터와의 대화식 세션을 시작하려면 다음과 같이 입력하십시오.
Enter-PSSession Server01
명령 프롬프트가 변경되어 연결된 컴퓨터의 이름이 표시됩니다. 그런 다음 프롬프트에서 입력하는 명령은 원격 컴퓨터에서 실행되고 결과는 로컬 컴퓨터에 표시됩니다.
대화식 세션을 종료하려면 다음을 입력하십시오.
Exit-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의 FilePath 매개 변수를 사용합니다. 스크립트는 로컬 컴퓨터에 있거나 액세스 할 수 있어야합니다. 결과는 로컬 컴퓨터로 반환됩니다.
예를 들어 다음 명령은 Server01 및 Server02 원격 컴퓨터에서 DiskCollect.ps1 스크립트를 실행합니다.
invoke-command -computername Server01, Server02 -filepath c:\Scripts\DiskCollect.ps1
영구 연결 설정
데이터를 공유하는 일련의 관련 명령을 실행하려면 원격 컴퓨터에서 세션을 만든 다음 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"} }