단일 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은 다음과 같습니다.
- 컴퓨터 다시 시작
- Test-Connection
- Clear-EventLog
- Get-EventLog
- Get-HotFix
- Get-Process
- Get-Service
- Set-Service
- Get-WinEvent
- Get-WmiObject
일반적으로 특별한 구성 없이 원격 작업을 지원하는 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
Enter-PSSession
및 Exit-PSSession
cmdlet에 대한 자세한 내용은 다음을 참조하세요.
원격 명령 실행
하나 이상의 컴퓨터에서 명령을 실행하려면 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
스크립트 실행
하나 이상의 원격 컴퓨터에서 스크립트를 실행하려면 Invoke-Command
cmdlet의 FilePath 매개 변수를 사용합니다. 스크립트는 로컬 컴퓨터에 있거나 액세스할 수 있어야 합니다. 결과는 로컬 컴퓨터에 반환됩니다.
예를 들어 다음 명령은 원격 컴퓨터, Server01 및 Server02에서 DiskCollect.ps1
스크립트를 실행합니다.
Invoke-Command -ComputerName Server01, Server02 -FilePath C:\Scripts\DiskCollect.ps1
영구 연결 설정
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 "NT AUTHORITY\SYSTEM"}}
고급 원격 제어
PowerShell에는 다음을 수행할 수 있는 cmdlet이 포함되어 있습니다.
- 로컬 및 원격 끝 모두에서 원격 세션 구성 및 만들기
- 사용자 지정 및 제한된 세션 만들기
- 원격 세션에서 암시적으로 실행되는 명령 가져오기
- 원격 세션의 보안 구성
Windows의 PowerShell에는 WSMan 공급자가 포함되어 있습니다. 공급자는 로컬 컴퓨터 및 원격 컴퓨터에서 구성 설정의 계층 구조를 탐색할 수 있는 WSMan:
드라이브를 만듭니다.
WSMan 공급자에 대한 자세한 내용은 WSMan 공급자 및 Cmdlet에 대한 정보 WS-Management를 참조하거나, Windows PowerShell 콘솔에서 Get-Help WSMan
를 입력하십시오.
자세한 내용은 다음을 참조하세요.
원격 오류에 대한 도움말은 about_Remote_Troubleshooting을 참조하세요.
또한 참조하십시오
PowerShell