원격 명령 실행

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

PowerShell은 WMI, WS-Management 및 SSH 원격을 지원합니다. PowerShell 7 이상에서는 RPC가 Windows에서만 지원됩니다.

PowerShell에서 원격에 대한 자세한 내용은 다음 문서를 참조하세요.

구성 없이 Windows PowerShell 원격 작업

많은 Windows PowerShell cmdlet에서는 데이터를 수집하고 하나 이상의 원격 컴퓨터에서 설정을 변경할 수 있는 ComputerName 매개 변수를 사용합니다. 이러한 cmdlet은 다양한 통신 프로토콜을 사용하고, 특별한 구성 없이도 모든 Windows 운영 체제에서 작동합니다.

이러한 cmdlet은 다음과 같습니다.

일반적으로 특별한 구성 없이 원격 작업을 지원하는 cmdlet에는 ComputerName 매개 변수는 있지만 Session 매개 변수는 없습니다. 세션에서 이러한 cmdlet을 찾으려면 다음과 같이 입력합니다.

Get-Command | Where-Object {
    $_.Parameters.Keys -contains "ComputerName" -and
    $_.Parameters.Keys -notcontains "Session"
}

Windows PowerShell 원격 기능

WS-Management 프로토콜을 사용하여 Windows PowerShell 원격을 사용하면 하나 이상의 원격 컴퓨터에서 Windows PowerShell 명령을 실행할 수 있습니다. 영구 연결을 설정하고, 대화형 세션을 시작하고, 원격 컴퓨터에서 스크립트를 실행할 수 있습니다.

Windows PowerShell 원격을 사용하려면 원격 관리를 위해 원격 컴퓨터를 구성해야 합니다. 자세한 내용과 지침은 원격 요구 사항 정보를 참조하세요.

Windows PowerShell 원격을 구성한 후에는 많은 원격 전략을 사용할 수 있습니다. 이 문서에는 몇 가지 항목만 나열됩니다. 자세한 내용은 원격 정보를 참조 하세요.

대화형 세션 시작

단일 원격 컴퓨터와 대화형 세션을 시작하려면 Enter-PSSession cmdlet을 사용합니다. 예를 들어 Server01 원격 컴퓨터에서 대화형 세션을 시작하려면 다음을 입력합니다.

Enter-PSSession Server01

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

대화형 세션을 종료하려면 다음을 입력합니다.

Exit-PSSession

Exit-PSSession cmdlet에 Enter-PSSession 대한 자세한 내용은 다음을 참조하세요.

원격 명령 실행

한 대 이상의 컴퓨터에서 명령을 실행하려면 Invoke-Command cmdlet을 사용합니다. 예를 들어 Server01 및 Server02 원격 컴퓨터에서 Get-UICulture 명령을 실행하려면 다음을 입력합니다.

Invoke-Command -ComputerName Server01, Server02 -ScriptBlock {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

스크립트 실행

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

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

Invoke-Command -ComputerName Server01, Server02 -FilePath c:\Scripts\DiskCollect.ps1

영구 커넥트 설정

cmdlet을 New-PSSession 사용하여 원격 컴퓨터에서 영구 세션을 만듭니다. 다음 예제에서는 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 "NT AUTHORITY\SYSTEM"}}

고급 원격

PowerShell에는 다음을 수행할 수 있는 cmdlet이 포함되어 있습니다.

  • 로컬 및 원격 끝 모두에서 원격 세션 구성 및 만들기
  • 사용자 지정 및 제한된 세션 만들기
  • 원격 세션에서 실제로 암시적으로 실행되는 원격 세션에서 명령 가져오기
  • 원격 세션의 보안 구성

Windows의 PowerShell에는 WSMan 공급자가 포함되어 있습니다. 공급자는 로컬 컴퓨터 및 원격 컴퓨터에서 구성 설정의 계층 구조를 탐색할 수 있는 드라이브를 만듭니다 WSMAN: .

WSMan 공급자 에 대한 자세한 내용은 WSMan 공급자WS-Management Cmdlet 정보 또는 Windows PowerShell 콘솔에서 입력 Get-Help wsman합니다.

자세한 내용은 다음을 참조하세요.

원격 오류에 대한 도움이 필요한 경우 about_Remote_Troubleshooting을 참조하세요.

참고 항목