Enable-PSRemoting

원격 명령을 받도록 컴퓨터를 구성합니다.

Syntax

Enable-PSRemoting
      [-Force]
      [-SkipNetworkProfileCheck]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

cmdlet은 Enable-PSRemoting WS-Management 기술을 사용하여 전송되는 PowerShell 원격 명령을 받도록 컴퓨터를 구성합니다.

PowerShell 원격은 Windows Server 2012에서 기본적으로 사용하도록 설정됩니다. 지원되는 다른 버전의 Windows에서 PowerShell 원격을 사용하도록 설정하고 사용하지 않도록 설정된 경우 Windows Server 2012에서 원격을 다시 사용하도록 설정하는 데 사용할 Enable-PSRemoting 수 있습니다.

명령을 받을 각 컴퓨터에서 이 명령을 한 번만 실행해야 합니다. 명령만 보내는 컴퓨터에서는 실행할 필요가 없습니다. 구성은 수신기를 시작하므로 필요한 경우에만 실행하는 것이 좋습니다.

PowerShell 3.0 Enable-PSRemoting 부터 이 cmdlet은 컴퓨터가 공용 네트워크에 있을 때 클라이언트 버전의 Windows에서 PowerShell 원격을 사용하도록 설정할 수 있습니다. 자세한 내용은 SkipNetworkProfileCheck 매개 변수에 대한 설명을 참조하세요.

cmdlet은 Enable-PSRemoting 다음 작업을 수행합니다.

  • Set-WSManQuickConfig cmdlet을 실행하여 다음 작업을 수행합니다.
    • WinRM 서비스를 시작합니다.
    • WinRM 서비스의 시작 유형을 자동으로 설정합니다.
    • 모든 IP 주소에 대한 요청을 수락하는 수신기를 만듭니다.
    • WS-Management 통신에 방화벽 예외를 사용하도록 설정합니다.
    • 아직 등록되지 않은 경우 Microsoft.PowerShellMicrosoft.PowerShell.Workflow 세션 구성을 등록합니다.
    • 아직 등록되지 않은 경우 64비트 컴퓨터에 Microsoft.PowerShell32 세션 구성을 등록합니다.
    • 모든 세션 구성을 사용하도록 설정합니다.
    • 원격 액세스를 허용하도록 모든 세션 구성의 보안 설명자를 변경합니다.
  • WinRM 서비스를 다시 시작하여 위의 변경 내용을 적용합니다.

Windows 플랫폼에서 이 cmdlet을 실행하려면 관리자 권한으로 실행 옵션을 사용하여 PowerShell을 시작합니다. Linux 또는 MacOS 버전의 PowerShell에는 적용되지 않습니다.

주의

PowerShell 3.0 및 PowerShell 2.0이 모두 있는 시스템에서는 PowerShell 2.0을 사용하여 cmdlet을 Disable-PSRemoting 실행 Enable-PSRemoting 하지 마세요. 명령이 성공한 것처럼 보일 수 있지만 원격 기능이 올바르게 구성되지 않았습니다. 원격 명령 및 나중에 원격을 사용하거나 사용하지 않도록 설정하려는 시도는 실패할 수 있습니다.

예제

예제 1: 원격 명령을 받도록 컴퓨터 구성

이 명령은 원격 명령을 받도록 컴퓨터를 구성합니다.

Enable-PSRemoting

예제 2: 확인 프롬프트 없이 원격 명령을 받도록 컴퓨터 구성

이 명령은 원격 명령을 받도록 컴퓨터를 구성합니다. Force 매개 변수는 사용자 프롬프트를 표시하지 않습니다.

Enable-PSRemoting -Force

예제 3: 클라이언트에서 원격 액세스 허용

이 예제에서는 Windows 운영 체제의 클라이언트 버전에서 공용 네트워크에서 원격 액세스를 허용하는 방법을 보여 줍니다. 방화벽 규칙의 이름은 Windows 버전에 따라 다를 수 있습니다. 규칙 목록을 확인하는 데 사용합니다 Get-NetFirewallRule . 방화벽 규칙을 사용하도록 설정하기 전에 규칙의 보안 설정을 확인하여 구성이 사용자 환경에 적합한지 확인합니다.

Get-NetFirewallRule -Name 'WINRM*' | Select-Object -Property Name

Name
----
WINRM-HTTP-In-TCP-NoScope
WINRM-HTTP-In-TCP
WINRM-HTTP-Compat-In-TCP-NoScope
WINRM-HTTP-Compat-In-TCP

Enable-PSRemoting -SkipNetworkProfileCheck -Force
Set-NetFirewallRule -Name 'WINRM-HTTP-In-TCP' -RemoteAddress Any

기본적으로 Enable-PSRemoting 프라이빗 및 할기본 네트워크에서 원격 액세스를 허용하는 네트워크 규칙을 만듭니다. 이 명령은 SkipNetworkProfileCheck 매개 변수를 사용하여 동일한 로컬 서브넷의 공용 네트워크에서 원격 액세스를 허용합니다. 이 명령은 확인 메시지를 표시하지 않는 Force 매개 변수를 지정합니다.

SkipNetworkProfileCheck 매개 변수는 기본적으로 동일한 로컬 서브넷의 공용 네트워크에서 원격 액세스를 허용하는 Windows 운영 체제의 서버 버전에 영향을 주지 않습니다.

NetSecurity 모듈의 cmdlet은 Set-NetFirewallRule 모든 원격 위치에서 공용 네트워크에서 원격 액세스를 허용하는 방화벽 규칙을 추가합니다. 여기에는 여러 서브넷의 위치가 포함됩니다.

참고 항목

방화벽 규칙의 이름은 Windows 버전에 따라 다를 수 있습니다. cmdlet을 Get-NetFirewallRule 사용하여 시스템의 규칙 이름을 나열합니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Force

사용자 확인을 요청하지 않고 명령을 강제 실행합니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SkipNetworkProfileCheck

이 cmdlet은 컴퓨터가 공용 네트워크에 있을 때 Windows 운영 체제의 클라이언트 버전에서 원격을 사용하도록 설정됨을 나타냅니다. 이 매개 변수는 동일한 로컬 서브넷에 있는 컴퓨터에서만 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 사용하도록 설정합니다.

이 매개 변수는 기본적으로 공용 네트워크에 대한 로컬 서브넷 방화벽 규칙이 있는 Windows 운영 체제의 서버 버전에 영향을 주지 않습니다. 서버 버전 Enable-PSRemoting 에서 로컬 서브넷 방화벽 규칙을 사용하지 않도록 설정한 경우 이 매개 변수의 값에 관계없이 다시 사용하도록 설정합니다.

로컬 서브넷 제한을 제거하고 공용 네트워크의 모든 위치에서 원격 액세스를 사용하도록 설정하려면 NetSecurity 모듈의 Set-NetFirewallRule cmdlet을 사용합니다.

이 매개 변수는 PowerShell 3.0에서 도입되었습니다.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

입력

None

개체를 이 cmdlet으로 파이프할 수 없습니다.

출력

String

이 cmdlet은 결과를 설명하는 문자열을 반환합니다.

참고

PowerShell 3.0 Enable-PSRemoting 에서 WS-Management 통신에 대해 다음과 같은 방화벽 예외를 만듭니다.

Windows 운영 체제 Enable-PSRemoting 의 서버 버전에서 원격 액세스를 허용하는 프라이빗 및 do기본 네트워크에 대한 방화벽 규칙을 만들고 동일한 로컬 서브넷의 컴퓨터에서만 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 만듭니다.

Windows 운영 체제 Enable-PSRemoting 의 클라이언트 버전에서 PowerShell 3.0에서는 무제한 원격 액세스를 허용하는 프라이빗 및 do기본 네트워크에 대한 방화벽 규칙을 만듭니다. 동일한 로컬 서브넷에서 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 만들려면 SkipNetworkProfileCheck 매개 변수를 사용합니다.

Windows 운영 체제의 클라이언트 또는 서버 버전에서 로컬 서브넷 제한을 제거하고 원격 액세스를 허용하는 공용 네트워크에 대한 방화벽 규칙을 만들려면 NetSecurity 모듈의 cmdlet을 사용하여 Set-NetFirewallRule 다음 명령을 실행합니다. Set-NetFirewallRule -Name "WINRM-HTTP-In-TCP-PUBLIC" -RemoteAddress Any

PowerShell 2.0 Enable-PSRemoting 에서 WS-Management 통신에 대해 다음과 같은 방화벽 예외를 만듭니다.

Windows 운영 체제의 서버 버전에서는 원격 액세스를 허용하는 모든 네트워크에 대한 방화벽 규칙을 만듭니다.

Windows 운영 체제 Enable-PSRemoting 의 클라이언트 버전에서 PowerShell 2.0에서는 할 일기본 및 개인 네트워크 위치에 대해서만 방화벽 예외를 만듭니다. 보안 위험을 Enable-PSRemoting 최소화하기 위해 클라이언트 버전의 Windows에서 공용 네트워크에 대한 방화벽 규칙을 만들지 않습니다. 현재 네트워크 위치가 공용 Enable-PSRemoting 이면 다음 메시지를 반환합니다. 방화벽의 상태 검사 수 없습니다.

PowerShell 3.0 Enable-PSRemoting 부터 모든 세션 구성의 Enabled 속성 값을 설정하여 모든 세션 구성을 $True사용하도록 설정합니다.

PowerShell 2.0 Enable-PSRemoting 에서 세션 구성의 보안 설명자에서 Deny_All 설정을 제거합니다. PowerShell 3.0 Enable-PSRemoting 에서 Deny_All 제거하고 설정을 Network_Deny_All. 로컬 사용을 위해 예약된 세션 구성에 대한 원격 액세스를 제공합니다.