Windows Server 2019/2016へのRDSライセンス役割とRDS CALのインストール・アクティブ化手順
本記事では、Windows Server 2019および2016におけるリモートデスクトップライセンス役割のインストール、構成、アクティブ化の手順とともに、RDSクライアントアクセスライセンス(RDS CAL)の導入・有効化の方法について詳しく解説します。
まず前提として押さえておきたい点があります。リモートデスクトップセッションホスト(RDSH)役割をインストールした直後は120日間の猶予期間(評価ライセンス)が適用されますが、その期間が経過するとユーザーはRDSホストへ接続できなくなります。Microsoftのライセンス規定では、RDS機能を利用するすべてのユーザーまたはデバイスに対してライセンスが必要です。このリモートデスクトップクライアントアクセスライセンス(RDS CAL)を登録・発行するために、RDS役割にはリモートデスクトップライセンスサーバーという専用サービスが用意されています。
Windows Server 2019/2016へのリモートデスクトップライセンス役割のインストール
リモートデスクトップライセンスサービスはドメイン内の任意のサーバーに展開できます。必ずしもRDSHファームを構成するサーバーの1台にインストールする必要はありません。
インストールを開始する前に、対象サーバーをTerminal Server License Serversドメインセキュリティグループに追加しておきましょう(または、このグループのメンバーシップを変更できる権限があることを確認してください)。これを行わない場合、サーバーはドメインユーザーに対して「ユーザーごとのRDS CAL」を発行できません。
リモートデスクトップライセンスはサーバーマネージャーからインストールできます。役割と機能の追加ウィザードでリモートデスクトップサービス役割を選択してください。

役割サービスとしてリモートデスクトップライセンスを選択します。

あとは役割のインストールが完了するまで待ちます。
RDS-Licensingサービスは、リモートデスクトップライセンスマネージャーコンソール(licmgr.exe)から管理できます。
Windows Serverでは、PowerShellを使った方が役割や機能のインストールが簡単です。RDSライセンスサービスとRDライセンス診断ツールをインストールするには、次の1コマンドを実行するだけです。
Install-WindowsFeature RDS-Licensing –IncludeAllSubFeature -IncludeManagementTools
ホストにインストール済みのRDS関連サービスを一覧表示するには、以下のコマンドを使用します。
Get-WindowsFeature -Name RDS* | Where installed

Windows Server上でのRDSライセンスサーバーのアクティブ化
RDPクライアントにライセンスを発行するためには、RDSライセンスサーバーをアクティブ化しておく必要があります。リモートデスクトップライセンスマネージャー(licmgr.exe)を開き、サーバー名を右クリックしてサーバーのアクティブ化を選択してください。

RDSライセンスサーバーのアクティブ化ウィザードが起動します。ここでアクティブ化の方法を選択します。サーバーがインターネットに接続している場合は、Microsoftのサーバーへ自動的に接続してアクティブ化できます。直接インターネットアクセスがない環境では、Webブラウザー経由または電話によるアクティブ化も可能です。

続いて、会社に関する情報を入力します(一部の項目は必須です)。

最後に完了ボタンをクリックすれば作業終了です。

コンソールでサーバー名を右クリックして構成の確認を選択すると、RDSライセンスサーバーが正常にアクティブ化され、ドメイン内のRDSHクライアント向けに利用可能な状態であることを確認できます。確認すべき主なポイントは以下の2つです。
このライセンスサーバーはActive DirectoryのTerminal Server License Serversグループのメンバーです。ドメイン内のユーザーに対してユーザーごとのRDS CALを発行でき、使用状況の追跡も可能になります。
このライセンスサーバーは、Active Directoryドメインサービスにサービス接続ポイント(SCP)として登録されています。

RDS CALの種類:リモートデスクトップクライアントアクセスライセンス
リモートデスクトップセッションホストに接続するすべてのユーザーまたはデバイスには、クライアントアクセスライセンス(CAL)が必要です。RDS CALには以下の2種類があります。
- デバイスごとのCAL(Per Device CAL):RDSサーバーに複数回接続するコンピューター(デバイス)に割り当てられる永続的なライセンスです(初回接続時には一時ライセンスが発行されます)。同時使用はできず、10個のPer Deviceライセンスを持っていれば、最大10台のデバイスしかRDSサーバーに接続できません。現在のOpen Valueライセンスの名称は
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP DvcCALです。 - ユーザーごとのCAL(Per User CAL):1人のユーザーが任意の台数のコンピューターやデバイスからRDSサーバーへ接続できるライセンスタイプです。このライセンスはActive Directoryのユーザーアカウントに関連付けられ、永続的ではなく一定期間のみ発行されます。発行期間は52〜89日の間のランダムな日数です。現在のOpen Valueライセンスの名称は
WinRmtDsktpSrvcsCAL 2019 SNGL OLV NL Each AP UsrCALです。なお、ワークグループ環境(ドメイン非参加)でRDS 2019のユーザーごとのCALを使用しようとすると、「Remote Desktop License Issue: There is a problem with your Remote Desktop license, and your session will be disconnected in 60 minutes」というメッセージとともに60分ごとにユーザーセッションが強制的に切断されます。そのため、Windowsワークグループ環境のRDSサーバーでは、デバイスごとのライセンス(Per Device RDS CAL)のみを使用する必要があります。
.
注意:2016年版のRDS CALは、Windows Server 2016または2019で動作するライセンスサーバーにのみインストールできます。それ以前のバージョンのWindows Serverへのインストールはサポートされていません。つまり、Windows Server 2012 R2のライセンスサーバーに2016年版のRDS CALをインストールすることはできません。
Windows Server 2016上に2019年版のRDS CALを追加しようとすると、次のエラーが表示されます。
RD Licensing Manager The license code is not recognized. Ensure that you have entered the correct license code.

Windows Server 2019/2016へのRDS CALのインストール
次に、購入したリモートデスクトップクライアントライセンス(RDS CAL)パックをライセンスサーバーにインストールします。
リモートデスクトップライセンスマネージャーでサーバー名を右クリックし、ライセンスのインストールを選択してください。

アクティブ化の方法(自動/オンライン/電話)とライセンスプログラム(ここではEnterprise Agreementの場合を例とします)を選択します。


以降のウィザードの手順は、選択したライセンスプログラムによって異なります。Enterprise Agreementの場合は契約番号を入力します。License Pack(小売購入)を選択した場合は、Microsoftまたはパートナーから入手した25桁のプロダクトキーを入力してください。
続いて、製品バージョン(Windows Server 2019/2016)、ライセンス種別(RDSユーザーごとのCAL)、サーバーにインストールするライセンス数を指定します。

以上で、サーバーがクライアントへライセンス(RDS CAL)を発行できるようになります。
RDライセンスマネージャーコンソールのライセンスの変換メニューを使用すると、ユーザーごとのRDS CALをデバイスごとのCALへ(またはその逆へ)変換することも可能です。

空きのRDSライセンスが不足した場合は、次のPowerShellスクリプトを使用して、非アクティブなコンピューターに以前発行されたRDSデバイスごとのCALを取り消せます。
$RevokedPCName=”lon-bc1-123”
$licensepacks = Get-WmiObject win32_tslicensekeypack | where {($_.keypacktype -ne 0) -and ($_.keypacktype -ne 4) -and ($_.keypacktype -ne 6)}
$licensepacks.TotalLicenses
$TSLicensesAssigned = gwmi win32_tsissuedlicense | where {$_.licensestatus -eq 2}
$RevokePC = $TSLicensesAssigned | ? sIssuedToComputer -EQ $RevokedPCName
$RevokePC.Revoke()
なお、取り消せるのはPer Device RDS CAL全体の20%までです。ユーザーごとのCALは取り消せませんので注意してください。
RDS CAL使用状況レポート
RDSライセンスコンソールでは、ライセンス使用状況レポートを生成できます。サーバーのコンテキストメニューからレポートの作成→CALの使用状況を選択してください。

しかし、筆者としてはRDS CALの使用状況確認にはPowerShellを利用することをお勧めします。次のスクリプトは、すべてのRDS CALパックの残りライセンス数を表示します。
Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$licenses = (Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\* | Where-Object Name -Like "-Per User-*").Name
$total=0;
$issued=0;
foreach ($license in $licenses) {
$count=(Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\$license\TotalLicenses).CurrentValue
$total= $total + $count
$count2=(Get-Item -Path RDS:\LicenseServer\LicenseKeyPacks\$license\IssuedLicensesCount).CurrentValue
$issued= $issued + $count2
}
$available = $total - $issued
Write-Host "Total Licenses available: $available"
このPowerShellスクリプトはZabbix経由で実行し、残りライセンス数が例えば5未満になった場合にアラートを発生させるといった運用も可能です。
また、次のPowerShellスクリプトを使うと、ユーザーごとのCALレポートをCSV形式で出力できます。
Import-Module RemoteDesktopServices -ErrorAction Stop
Set-Location -Path 'rds:' -ErrorAction Stop
$path = “C:\Reports\RDS_CAL_Usage.csv”
$fileName = (Invoke-WmiMethod Win32_TSLicenseReport -Name GenerateReportEx).FileName
$fileEntries = (Get-WmiObject Win32_TSLicenseReport | Where-Object FileName -eq $fileName).FetchReportEntries(0,0).ReportEntries
$objArray = @()
foreach($entry in $fileEntries){
$objArray += $entry | select User, ProductVersion, CALType, ExpirationDate
$objArray[-1].User = $objArray[-1].User.Split('\') | select -Last 1
$time = $objArray[-1].ExpirationDate.Split('.') | select -first 1
$objArray[-1].ExpirationDate = [datetime]::ParseExact($time, "yyyyMMddHHmmss", $null)
}
$objArray | Export-Csv -Path $path -Delimiter ',' -NoTypeInformation

RDライセンスサーバーからRDS CALを削除する方法
RDS CALのライセンスパックをあるリモートデスクトップライセンスサーバーから別のサーバーへ移行したい場合は、PowerShellを使用してインストール済みのRDS CALライセンスパックを削除できます。
次のコマンドレットで、サーバー上にインストールされているすべてのRDS CALパックを一覧表示できます。
Get-WmiObject Win32_TSLicenseKeyPack|select-object KeyPackId,ProductVersion,TypeAndModel,AvailableLicenses,IssuedLicenses |ft

削除したいRDS CALパッケージのKeyPackIdの値を確認し、次のコマンドを実行します。
wmic /namespace:\\root\CIMV2 PATH Win32_TSLicenseKeyPack CALL UninstallLicenseKeyPackWithId yourKeyPackId
また、RDSライセンスデータベースを再作成することで、すべてのCALを完全に削除することもできます。その場合は、まずリモートデスクトップライセンスサービスを停止します。
Stop-Service TermServLicensing
ファイル C:\Windows\System32\lserver\TLSLic.edb を C:\Windows\System32\lserver\TLSLic.edb_bak にリネームし、サービスを再起動します。
Start-Service TermServLicensing
これにより、すべてのRDS CALライセンスが削除されるため、再度アクティブ化する必要があります。
RDセッションホストでのRDSライセンスの構成
RDSライセンスサーバーのアクティブ化と稼働が完了したら、このサーバーからCALライセンスを取得するようRDセッションホストを再構成します。ライセンスの種類とライセンスサーバー名は、サーバーマネージャーのGUI、PowerShell、またはグループポリシーのいずれかから設定できます。
RDSホスト上のライセンスサーバーの名前やアドレスを変更するには、サーバーマネージャー→リモートデスクトップサービス→コレクションを開き、右上の「タスク」メニューから「配置プロパティの編集」を選択します。

配置プロパティでRDライセンスタブに移動し、リモートデスクトップライセンスモードを選択して、RDSライセンスサーバーを指定します。「追加」→「OK」をクリックしてください。

RDSHサーバーでライセンスモードが設定されていない場合、「リモートデスクトップセッションホストのライセンスモードが構成されていません」というエラーが発生します。
PowerShellでもRDSライセンスサーバーのアドレスとCAL種別を変更できます。
$obj = gwmi -namespace "Root/CIMV2/TerminalServices" Win32_TerminalServiceSetting
続いて、必要なライセンス種別を指定します。
$obj.ChangeMode(4)
注:ユーザーごとのライセンス(Per User)を使用する場合は 4 を、デバイスごとのライセンス(Per Device)の場合は 2 を入力してください。
次に、RDSライセンスサーバーの名前を指定します。
$obj.SetSpecifiedLicenseServerList("rdslic2016.woshub.com")
そして、現在の設定を確認します。
$obj.GetSpecifiedLicenseServerList()
グループポリシー経由でRDSライセンスサーバーのパラメーターを割り当てたい場合は、新しいGPOを作成してRDSサーバーが属するOUにリンクします(ローカルグループポリシーエディター gpedit.msc で指定することも可能です)。RDライセンスの設定は、GPOの次の場所にあります:コンピューターの構成→ポリシー→管理用テンプレート→Windowsコンポーネント→リモートデスクトップサービス→リモートデスクトップセッションホスト→ライセンス。
構成が必要なリモートデスクトップの設定は2つあります。
- 特定のリモートデスクトップライセンスサーバーを使用する:ライセンスサーバーのアドレスを設定します。
- リモートデスクトップライセンスモードを設定する:RDS CALのライセンス種別を選択します。

RDSHホストは、RDSライセンスサーバーからライセンスを取得する際に以下のネットワークポートを使用します。ファイアウォール(Windows Defenderファイアウォール含む)でブロックされていないことを確認してください。
- TCP/135 – Microsoft RPC
- UDP/137 – NetBIOSデータグラムサービス
- UDP/138 – NetBIOS名前解決
- TCP/139 – NetBIOSセッションサービス
- TCP/445 – SMB
- TCP/49152–65535 – RPC動的ポート範囲
ポートの開放状態は、PortQryツールやTest-NetConnectionコマンドレットで確認できます。
リモートデスクトップライセンス診断ツール(lsdiag.msc、または管理ツール→リモートデスクトップサービス→RDライセンス診断)を使用して、RDライセンスサーバーの状態と発行済みライセンス数を確認しましょう。RDライセンス診断ツールは、サーバーマネージャー(機能→リモートサーバー管理ツール→役割管理ツール→リモートデスクトップサービスツール→リモートデスクトップライセンス診断ツール)からRDSHサーバーにインストールできます。
RDSHサーバーがRDSライセンスサーバーを使用するよう構成されていない場合、ライセンス診断コンソールに次のような警告が表示されます。
Licenses are not available for this Remoter Desktop Session Host server, and RD Licensing Diagnose has identified licensing problems for the RDSH.
Number of licenses available for clients: 0
The licensing mode for the Remote Desktop Session Host server is not configured.
Remote Desktop Session Host server is within its grace period, but the RD Session Host server has not been configured with any license server.

Windows ServerのEvaluationエディションにRDSHをインストールした場合は、ガイドに従ってフルバージョンへ変換することを忘れないでください。変換しない限り、アクティブ化されたRDSライセンスサーバーを指定しても、そのホスト上のRDSHサービスは120日間しか動作しません。
警告が一切表示されず、「RDライセンス診断では、リモートデスクトップセッションホストサーバーのライセンスに関する問題は検出されませんでした」というメッセージが表示されていれば、RDSHサーバーはリモートユーザーやデバイスに対して正常にRDS CALを取得できる状態です。

注意:新しいライセンスサーバーのアドレスを指定した後、RDPクライアント側で「The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license(ライセンスを提供できるリモートデスクトップライセンスサーバーがないため、リモートセッションが切断されました)」というエラーが発生することがあります。この問題は、RDSHサーバーのレジストリからL$RTMTIMEBOMBキーを削除することで解決できます。
-
RDSHライセンス不要!Windows Server 2016/2019にAdobe Flash Playerをインストールする手順
Windows Server 2016 や Windows Server 2019 に Adobe Flash Player をインストールする方法をお探しの方は、ぜひこのチュートリアルをご活用ください。ご存知のとおり、通常は「リモートデスクトップセッションホスト(RDSH)」ロールを追加しないと、Server 2016 に Flash Player をインストールすることはできません。しかし、そのために RDSH ライセンスを新たに購入したくない場合でも、以下の手順に従えば追加費用なしで Flash Player を有効化できます。本記事では、Windows Server 2016 / 20
-
【Windows Server 2016/2019】リモートデスクトップライセンスサーバーにRDS CALをインストールする方法
リモートデスクトップライセンスサーバーのインストールとアクティブ化がすでに完了している場合、次に行うのはリモートデスクトップサービスのクライアントアクセスライセンス(RDS CAL)をライセンスサーバーにインストールする作業です。この記事では、その具体的な手順をわかりやすく解説します。 Windows Server 2019 または Windows Server 2016 のRDSサーバーにRDS CALを新規インストール、あるいは追加する方法は以下の通りです。 RDS CALのインストール手順 1. リモートデスクトップライセンスマネージャーを開く サーバーマネージャーを開き、ツールメニュー