Enable-PSRemoting
원격 명령을 받도록 컴퓨터를 구성합니다.
구문
Enable-PSRemoting
[-Force]
[-SkipNetworkProfileCheck]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Enable-PSRemoting cmdlet은 WS-Management 기술을 사용하여 전송되는 Windows PowerShell 원격 명령을 받도록 컴퓨터를 구성합니다.
Windows Server 2012에서 Windows PowerShell 원격은 기본적으로 사용하도록 설정됩니다. Enable-PSRemoting 사용하여 지원되는 다른 버전의 Windows에서 Windows PowerShell 원격을 사용하도록 설정하고 사용하지 않도록 설정된 경우 Windows Server 2012에서 원격을 다시 사용하도록 설정할 수 있습니다.
명령을 받을 각 컴퓨터에서 이 명령을 한 번만 실행해야 합니다. 명령만 보내는 컴퓨터에서는 실행할 필요가 없습니다. 구성은 수신기를 시작하므로 필요한 경우에만 실행하는 것이 좋습니다.
Windows PowerShell 3.0부터 Enable-PSRemoting cmdlet은 컴퓨터가 공용 네트워크에 있을 때 클라이언트 버전의 Windows에서 Windows PowerShell 원격을 사용하도록 설정할 수 있습니다. 자세한 내용은 SkipNetworkProfileCheck 매개 변수에 대한 설명을 참조하세요.
Enable-PSRemoting cmdlet은 다음 작업을 수행합니다.
- 다음 작업을 수행하는 Set-WSManQuickConfig cmdlet을 실행합니다.
- WinRM 서비스를 시작합니다.
- WinRM 서비스의 시작 유형을 자동으로 설정합니다.
- 모든 IP 주소에 대한 요청을 수락하는 수신기를 만듭니다.
- WS-Management 통신에 방화벽 예외를 사용하도록 설정합니다.
- 아직 등록되지 않은 경우 Microsoft.PowerShell 및 Microsoft.PowerShell.Workflow 세션 구성을 등록합니다.
- 아직 등록되지 않은 경우 64비트 컴퓨터에 Microsoft.PowerShell32 세션 구성을 등록합니다.
- 모든 세션 구성을 사용하도록 설정합니다.
- 원격 액세스를 허용하도록 모든 세션 구성의 보안 설명자를 변경합니다.
- WinRM 서비스를 다시 시작하여 이전 변경 내용을 적용합니다.
이 cmdlet을 실행하려면 "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작합니다.
주의
Windows PowerShell 3.0 및 Windows PowerShell 2.0 엔진이 모두 있는 시스템에서는 Windows PowerShell 2.0을 사용하여 Enable-PSRemoting 및 Disable-PSRemoting cmdlet을 실행하지 마세요. 명령이 성공한 것처럼 보일 수 있지만 원격 작업이 올바르게 구성되지 않았습니다. 원격 명령 및 나중에 원격을 사용하거나 사용하지 않도록 설정하려는 시도는 실패할 수 있습니다.
예제
예제 1: 원격 명령을 받도록 컴퓨터 구성
Enable-PSRemoting
이 명령은 원격 명령을 받도록 컴퓨터를 구성합니다.
예제 2: 확인 프롬프트 없이 원격 명령을 받도록 컴퓨터 구성
Enable-PSRemoting -Force
이 명령은 원격 명령을 받도록 컴퓨터를 구성합니다. Force 매개 변수를 사용하여 사용자 프롬프트를 표시하지 않습니다.
예제 3: 클라이언트에서 원격 액세스 허용
Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
이 예제에서는 클라이언트 버전의 Windows에서 공용 네트워크에서 원격 액세스를 허용하는 방법을 보여 줍니다. 이러한 명령을 사용하기 전에 보안 설정을 분석하고 컴퓨터 네트워크가 손상으로부터 안전한지 확인합니다.
첫 번째 명령은 Windows PowerShell에서 원격을 사용하도록 설정합니다. 기본적으로 프라이빗 및 도메인 네트워크에서 원격 액세스를 허용하는 네트워크 규칙을 만듭니다. 이 명령은 SkipNetworkProfileCheck 매개 변수를 사용하여 동일한 로컬 서브넷의 공용 네트워크에서 원격 액세스를 허용합니다. 이 명령은 Force 매개 변수를 사용하여 확인 메시지를 표시하지 않습니다.
SkipNetworkProfileCheck 매개 변수는 기본적으로 동일한 로컬 서브넷의 공용 네트워크에서 원격 액세스를 허용하는 Windows 서버 버전에 영향을 주지 않습니다.
두 번째 명령은 서브넷 제한을 제거합니다. 이 명령은 NetSecurity 모듈의 Set-NetFirewallRule cmdlet을 사용하여 원격 위치에서 공용 네트워크에서 원격 액세스를 허용하는 방화벽 규칙을 추가합니다. 여기에는 여러 서브넷의 위치가 포함됩니다.
매개 변수
-Confirm
cmdlet을 실행하기 전에 확인 메시지를 표시합니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Force
모든 사용자 프롬프트를 표시하지 않습니다. 기본적으로 각 작업을 확인하라는 메시지가 표시됩니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-SkipNetworkProfileCheck
컴퓨터가 공용 네트워크에 있는 경우 클라이언트 버전의 Windows에서 원격을 사용하도록 설정합니다. 이 매개 변수는 동일한 로컬 서브넷에 있는 컴퓨터에서만 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 사용하도록 설정합니다.
이 매개 변수는 기본적으로 공용 네트워크에 대한 로컬 서브넷 방화벽 규칙이 있는 Windows 서버 버전에는 영향을 주지 않습니다. Windows 서버 버전에서 로컬 서브넷 방화벽 규칙을 사용하지 않도록 설정한 경우 Enable-PSRemoting 이 매개 변수의 값에 관계없이 다시 사용하도록 설정합니다.
로컬 서브넷 제한을 제거하고 공용 네트워크의 모든 위치에서 원격 액세스를 사용하도록 설정하려면 NetSecurity 모듈에서 Set-NetFirewallRule cmdlet을 사용합니다.
이 매개 변수는 Windows PowerShell 3.0에서 도입되었습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
None
이 cmdlet에 입력을 파이프할 수 없습니다.
출력
이 cmdlet은 결과를 설명하는 문자열을 반환합니다.
참고
Windows PowerShell 3.0에서 Enable-PSRemoting WS-Management 통신에 대해 다음과 같은 방화벽 예외를 만듭니다.
Windows 서버 버전에서 Enable-PSRemoting 원격 액세스를 허용하는 프라이빗 및 도메인 네트워크에 대한 방화벽 규칙을 만들고 동일한 로컬 서브넷의 컴퓨터에서만 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 만듭니다.
Windows의 클라이언트 버전에서 Windows PowerShell 3.0의 Enable-PSRemoting
무제한 원격 액세스를 허용하는 프라이빗 및 도메인 네트워크에 대한 방화벽 규칙을 만듭니다. 동일한 로컬 서브넷에서 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 만들려면 SkipNetworkProfileCheck 매개 변수를 사용합니다. 클라이언트 또는 서버 버전의 Windows에서 로컬 서브넷 제한을 제거하고 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 만들려면 NetSecurity 모듈의 Set-NetFirewallRule cmdlet을 사용하여 다음 명령을 실행합니다.
Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any
Windows PowerShell 2.0에서 Enable-PSRemoting WS-Management 통신에 대해 다음과 같은 방화벽 예외를 만듭니다.
Windows 서버 버전에서는 원격 액세스를 허용하는 모든 네트워크에 대한 방화벽 규칙을 만듭니다.
Windows의 클라이언트 버전에서 Windows PowerShell 2.0의 Enable-PSRemoting 도메인 및 개인 네트워크 위치에 대해서만 방화벽 예외를 만듭니다. 보안 위험을 최소화하기 위해 Enable-PSRemoting
클라이언트 버전의 Windows에서 공용 네트워크에 대한 방화벽 규칙을 만들지 않습니다. 현재 네트워크 위치가 공용인 경우 Enable-PSRemoting 다음 메시지를 반환합니다. "방화벽의 상태를 확인할 수 없습니다." Windows PowerShell 3.0부터 Enable-PSRemoting 모든 세션 구성(WSMan:\<ComputerName>\Plugin\<SessionConfigurationName>\Enabled)의 Enabled 속성 값을 True($true)로 설정하여 모든 세션 구성을 사용하도록 설정합니다.
Windows PowerShell 2.0에서 Enable-PSRemoting 세션 구성의 보안 설명자에서 Deny_All 설정을 제거합니다. Windows PowerShell 3.0에서 Enable-PSRemoting Deny_All 및 Network_Deny_All 설정을 제거하여 로컬 사용을 위해 예약된 세션 구성에 대한 원격 액세스를 제공합니다.