Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

Windows Server RDS '원격 데스크톱 세션 호스트 라이선스 모드가 구성되지 않음' 오류 해결 가이드

RDSH 라이선스 모드 미구성 경고 현상

Windows Server 2012 R2/2016/2019 환경의 RDS 팜에 새로운 원격 데스크톱 세션 호스트(RDSH) 노드를 배포하려고 할 때, 시스템 트레이에 다음과 같은 경고 팝업이 나타날 수 있습니다.

Licensing mode for the Remote Desktop Session Host is not configured.
Remote Desktop Service will stop working in 104 days.
On the RD Connection Broker server, use Server Manager to specify the Remote Desktop licensing mode and the license server.

오류 메시지를 보면 해당 RDS 호스트가 아직 유예 기간(grace period) 내에 있음을 알 수 있습니다. 120일의 유예 기간 동안에는 RDS 라이선스를 활성화하지 않아도 원격 데스크톱 세션 호스트를 사용할 수 있지만, 유예 기간이 끝나면 사용자는 더 이상 RDSH에 접속할 수 없게 되며 트레이에 다음과 같은 오류가 표시됩니다.

Remote Desktop Services will stop working because this computer is past grace period and has not contacted at least a valid Windows Server 2012 license server. Click this message to open RD Session Host Server Configuration to use Licensing Diagnosis.

RDS 오류 "The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license"와 유사한 문제이지만, 이번 상황은 조금 다릅니다.

RD Licensing Diagnoser로 문제 진단하기

문제를 정확하게 진단하려면 RD Licensing Diagnoser 도구(lsdiag.msc, 관리 도구 → 원격 데스크톱 서비스 → RD Licensing Diagnoser)를 실행해야 합니다. 도구 창에는 다음과 같은 오류가 표시됩니다.

Licenses are not available for the Remote Desktop Session Host server, and RD Licensing Diagnoser has identified licensing problem for the RD Session Host server.
Licensing mode for the Remote Desktop Session Host is not configured.
The Remote Desktop Session Host server is within its grace period, but the Session Host server has not been configured with any license server.

보시다시피 라이선스 모드가 설정되어 있지 않기 때문에 클라이언트에 사용 가능한 라이선스가 없습니다. 즉, 관리자가 RDS 라이선스 서버와 라이선싱 모드를 지정하지 않은 것입니다. RDS 호스트 배포 당시 라이선싱 유형을 이미 지정했다 하더라도 이 설정을 반드시 확인하고 적용해야 합니다(배포 구성 → RD 라이선싱 → 원격 데스크톱 라이선싱 모드 선택).

PowerShell로 라이선스 서버 설정 확인 및 지정

다음 PowerShell 명령으로 RDS 라이선스 서버가 설정되어 있는지 확인할 수 있습니다.

$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
$obj.GetSpecifiedLicenseServerList()

참고: Get-RDLicenseConfiguration cmdlet은 경우에 따라 잘못된 데이터를 반환할 수 있으므로 주의해야 합니다.

RDS 라이선스 서버가 설정되어 있지 않다면 다음 명령으로 지정할 수 있습니다.

$obj.SetSpecifiedLicenseServerList("uk-rdslic1.woshub.com")

RD 라이선스 역할이 설치된 서버를 기억하지 못한다면, PowerShell ActiveDirectory 모듈의 Get-ADObject cmdlet을 사용하여 Active Directory 도메인에 등록된 모든 RDS 라이선싱 서버 목록을 조회할 수 있습니다.

Get-ADObject -Filter {objectClass -eq 'serviceConnectionPoint' -and Name -eq 'TermServLicensing'}

RDS 라이선싱 모드 강제 설정 방법

방법 1: 레지스트리 수정

레지스트리 키 HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core에서 LicensingMode라는 이름의 DWORD 값을 5에서 아래 값 중 하나로 변경합니다.

  • 2Per Device(장치 단위) RDS 라이선싱 모드를 사용하는 경우
  • 4Per User(사용자 단위) 라이선싱을 사용하는 경우

regedit.exe로 수동 변경할 수도 있고, 다음 PowerShell 명령을 사용할 수도 있습니다.

# RDS 라이선싱 유형 지정: 2 - Per Device CAL, 4 - Per User CAL
$RDSCALMode = 2
# RDS 라이선스 서버 호스트 이름
$RDSlicServer = "uk-rdslic1.woshub.com"
# 레지스트리에 서버 이름과 라이선싱 유형 설정
New-Item "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers"
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\TermService\Parameters\LicenseServers" -Name SpecifiedLicenseServers -Value $RDSlicServer -PropertyType "MultiString"
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core\" -Name "LicensingMode" -Value $RDSCALMode

설정 변경 후에는 반드시 RDSH 서버를 재시작해야 합니다.

방법 2: 그룹 정책(GPO) 사용

GPO(로컬 또는 도메인 정책)를 통해서도 RDS 라이선스 서버 매개변수를 구성할 수 있습니다. RDS 서버가 Active Directory 도메인에 가입되지 않은 워크그룹 환경이라면 로컬 그룹 정책 편집기(gpedit.msc)를 사용하세요. 컴퓨터 구성 → 관리 템플릿 → Windows 구성 요소 → 원격 데스크톱 서비스 → 원격 데스크톱 세션 호스트 → 라이선싱으로 이동합니다.

여기서 두 가지 정책을 설정해야 합니다.

  • 지정된 원격 데스크톱 라이선스 서버 사용(Use the specified Remote Desktop license servers) – 정책을 사용으로 설정하고 RDS 라이선스 서버 주소를 입력합니다. 라이선스 서버가 동일한 서버에서 실행 중이라면 127.0.0.1을 입력합니다.
  • 원격 데스크톱 라이선싱 모드 설정(Set the Remote Desktop licensing mode) – 라이선싱 모드를 선택합니다. 본 예시에서는 Per User(사용자 단위)를 선택합니다.

서버 재시작 후 RD Licensing Diagnoser를 열어 사용 가능한 RDS 라이선스 수와 선택한 라이선싱 모드가 올바르게 적용되었는지 확인합니다.

방화벽 포트 확인

네트워크에서 방화벽을 사용 중이라면 RDSH 호스트에서 RDS 라이선스 서버 방향으로 다음 포트를 열어야 합니다. TCP:135, UDP:137, UDP:138, TCP:139, TCP:445, TCP:49152~65535(RPC 범위).

Test-NetConnection cmdlet으로 포트 개방 여부를 확인할 수 있으며, 로컬 Windows Defender 방화벽에서 포트가 차단되어 있다면 NetSecurity 모듈의 PowerShell cmdlet을 사용해 포트를 열 수 있습니다.

Windows Server 버전 호환성 문제

주의할 점이 하나 더 있습니다. 예를 들어 RD 라이선스 서버에 Windows Server 2012 R2와 RDS 2012 R2용 CAL이 설치되어 있다면, Windows Server 2016/2019용 RDS CAL 라이선스를 설치할 수 없습니다. 올바른 라이선스 유형과 RDS 라이선스 서버 이름을 지정했더라도 "Remote Desktop Licensing mode is not configured" 오류가 계속 발생합니다. 구버전 Windows Server는 신규 버전용 RDS CAL을 지원하지 않기 때문입니다.

이 경우 RD License Diagnoser 창에 다음과 같은 메시지가 표시됩니다.

The Remote Desktop Session Host is in Per User licensing mode and no Redirector Mode, but license server does not have any installed license with the following attributes:
Product version: Windows Server 2016
Use RD Licensing Manager to install the appropriate licenses on the license server.

이 경우 먼저 RDS 라이선스 서버의 Windows Server 버전을 업그레이드하거나, 새로운 RD 라이선스 호스트를 배포해야 합니다. 최신 버전의 Windows Server(예: WS 2019)는 이전 버전의 Windows Server용 RDS CAL을 모두 지원하므로 하위 호환성 문제가 해결됩니다.

참고: RDS 서버가 워크그룹에 속해 있는 경우 라이선싱 보고서가 생성되지 않습니다. 터미널 RDS 라이선스 자체는 클라이언트/장치에 정상적으로 발급되지만, 남은 RDS CAL 수는 관리자가 직접 모니터링해야 합니다.