원격 명령 실행
단일 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은 다음과 같습니다.
- Restart-Computer
- 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
및 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을 참조하세요.
참고 항목
PowerShell