リモートデスクトップ(RDP)による接続は非常に便利ですが、ドメイン環境においてライセンスエラーが発生すると厄介ですよね。特に「リモートデスクトップ ライセンスを付与するサーバーがありません」と表示されると、原因の切り分けに手間取ることも多いものです。本記事では、トラブル解決のヒントから具体的な設定方法まで幅広く解説します。
ドメインユーザーのRDPライセンスエラーとは?
ドメインユーザーとして仮想マシン(VM)や物理サーバーにリモートデスクトップ接続しようとすると、「ライセンスを付与するサーバーが見つからない」というエラーが表示されるケースがあります。これは一般的に以下の原因が考えられます。
- ライセンスサーバーの指定不備:セッションホスト(RDSホスト)がどのライセンスサーバーを参照すべきか設定されていない。
- ライセンスの不足または期限切れ:ライセンスサーバー側のクライアントアクセスライセンス(CAL)が上限に達しているか、期限切れになっている。
- ライセンスモードの不一致:サーバー上で指定しているライセンスモード(Per User もしくは Per Device)と、ライセンスサーバーにインポートしたライセンスのモードが一致していない。
- グループポリシーやレジストリ設定の不備:RDPライセンスの構成がグループポリシーやレジストリで正しく行われていない。
ここでは、上記の問題を切り分けるためのポイントや解決策を詳しく紹介していきます。
RDSライセンスの仕組みを理解する
RDP(リモートデスクトップ)の利用には、Windowsサーバー側で「リモートデスクトップ サービス(RDS)」におけるライセンス管理が必要です。RDSライセンスは下記2つのモードがあります。
ライセンスモード | 概要 | 用途例 |
---|---|---|
Per Device | 接続するデバイスごとにCALを割り当てる | 固定の端末でRDPを利用する組織や工場端末 |
Per User | ドメインユーザーごとにCALを割り当てる | 社員が複数PCからログインするケースが多い企業 |
多くの企業ではユーザー単位でライセンスを使用することが多いですが、デバイス単位で利用するケースもあります。ライセンスモードが一致していないと、RDP接続時にライセンスを付与できずエラーとなる可能性が高まります。
ライセンスサーバーとセッションホストの役割
- ライセンスサーバー(RD Licensing Server)
RDSライセンスを一元管理し、クライアントからのアクセスに対してCALを発行します。 - セッションホスト(RD Session Host)
実際にRDPのセッションをホストするサーバー役割です。ユーザーがRDPでログインすると、このセッションホストがライセンスサーバーへ問合せを行い、ライセンスを取得します。
トラブルシューティングの前提確認
ライセンスエラーが発生している場合、以下のポイントを先に確認しておくと、問題解決の道筋がスムーズになります。
1. 物理or仮想環境の構成
エラーが仮想マシン(VM)単体で発生しているのか、あるいは他のサーバーでも発生しているのかを確認しましょう。複数台で同様のエラーが起こる場合は、ライセンスサーバー側の設定やライセンス在庫が原因である可能性が高まります。
2. ドメインコントローラー(DC)との連携
ドメインコントローラー上で、RDS関連のグループポリシーやDNS設定が正しく行われているかをチェックすることが重要です。特に名前解決やドメイン参加が不完全だと、ライセンスサーバーとの通信に失敗することがあります。
3. RDP接続に必要なポートやファイアウォール
RDPに利用される既定ポートである3389番がブロックされていないか確認しましょう。さらに、ライセンスサーバーとのやり取りが可能なように、必要なポート(UDP/3389, TCP/3389など)が正しく解放されていることも要確認です。
ライセンスエラーを解消するための具体的手順
ここからは実際に問題が発生したときの手順を順を追って解説します。
1. Remote Desktop Session Hostの役割の確認
RDPセッションを受け付けるサーバーには、以下の機能(役割)がインストールされている必要があります。
- Remote Desktop Services
- Remote Desktop Session Host
まず、VMや対象サーバーにこれらの役割がインストールされているかどうか確認します。
役割の確認コマンド
Get-WindowsFeature -Name *RDS*
上記コマンドをPowerShell上で実行すると、RDS関連の役割がどうなっているかを確認できます。必要な役割が「Installed」と表示されていない場合はインストールを行いましょう。
2. レジストリによるライセンスモードの設定
セッションホストのライセンスモードをレジストリで確認・設定します。手動で設定したい場合は、以下のレジストリパスを参照します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core
ここにあるLicensingMode
の値によってライセンスモードが決定されます。主な値は以下の通りです。
- 2 : Per Device モード
- 4 : Per User モード
環境に合わせて設定しているかを必ず確認してください。また、設定変更後はサーバーを再起動することをおすすめします。
3. ライセンスサーバーの指定
ライセンスサーバーを明示的に指定しないと、セッションホストがどのサーバーにライセンスを要求すべきか分からず、エラーの原因となります。以下のレジストリキーにライセンスサーバーのFQDNまたはIPアドレスを設定します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\LicenseServers
新規キーを作成する場合は、LicenseServers
の下にライセンスサーバー名を文字列として追加してください。名前解決が機能している場合はFQDNを推奨します。
ライセンスサーバー側の設定と管理
ライセンスエラーはセッションホスト側だけでなく、ライセンスサーバーの不備も考えられます。次のポイントをチェックしましょう。
1. ライセンスの在庫確認
ライセンスサーバーに十分なRDS CALが登録されているかどうか、管理ツールから確認します。
- Windows Serverの「サーバーマネージャー」を開く
- 「リモートデスクトップ サービス」→「RDライセンスマネージャー」を起動
- ライセンスの使用状況と残りをチェック
ライセンスが不足している場合は、追加ライセンスを購入してライセンスサーバーへインストールする必要があります。
2. ライセンスの有効期限と再割り当て
ライセンスが期限切れになっていると、エラーが発生しやすくなります。期限切れライセンスを除去して再割り当てを行う手順を把握しておきましょう。特にPer Deviceモードを使用している場合、誤って使用済みとなったライセンスを再発行してもらう必要が出てくることがあります。
3. ライセンスサーバーのアクティベーション
ライセンスサーバーが未アクティブの場合はCALを正しく配布できません。ライセンスマネージャーの画面で「ライセンス サーバーのアクティブ化」を実行し、インターネットを通じたアクティブ化または電話を利用したアクティブ化を完了させてください。
ドメインコントローラー(DC)とグループポリシーのポイント
ドメイン全体でRDPポリシーを管理する場合は、グループポリシーを使うことが多いです。特に次のポリシー項目が重要となります。
1. ライセンスモードの指定
グループポリシーでセッションホストに対してライセンスモードを一括設定することが可能です。
グループポリシーのパス:
「コンピューターの構成」 → 「ポリシー」 → 「管理用テンプレート」 → 「Windowsコンポーネント」 → 「リモート デスクトップ サービス」 → 「リモート デスクトップ セッション ホスト」 → 「ライセンス」
この中にある「ライセンス モードを設定する」を“有効”にし、適切なモード(Per User/Per Device)を選択します。
2. ライセンスサーバーの指定
同じグループポリシー配下に、ライセンスサーバーを指定する設定項目があります。これを利用することで、ドメインに参加しているすべてのセッションホストに一括でライセンスサーバーを設定できます。
具体的なレジストリ設定例
上記の設定を手動でやりたい場合や、一時的に検証環境で実施したい場合は、以下のようなレジストリを.regファイルとして用意し、適用することが可能です。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core]
"LicensingMode"=dword:00000004 ; 4はPer Userを意味する
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\LicenseServers]
@=""
"rdlic01.contoso.local"=""
上記例では、ライセンスモードをPer User(4)に設定し、ライセンスサーバーとして rdlic01.contoso.local
を指定しています。実際の環境に合わせてホスト名やIPを修正してください。
変更後のトラブルシューティングと再起動
レジストリやグループポリシーを変更したら、再起動またはGP更新が必要です。
- グループポリシー更新:
gpupdate /force
を実行 - サーバー再起動: 必要に応じてセッションホストおよびライセンスサーバーを再起動
再起動後にイベントログ(「アプリケーションとサービス ログ」→「Microsoft」→「Windows」→「TerminalServices-RemoteConnectionManager」など)を確認し、ライセンスの割り当てが正常に行われているかチェックしましょう。
ライセンスエラーを回避するためのベストプラクティス
最後に、日頃からRDSライセンス管理に気を配るためのベストプラクティスを紹介します。
1. ライセンスの在庫を常に把握する
ライセンスマネージャーで定期的にCALの使用状況を確認し、予測を立てて不足が生じる前に追加ライセンスを手配することが重要です。
2. ライセンスサーバーを冗長化する
大規模環境ではライセンスサーバーを冗長化(複数設置)することで、片方がダウンしてもライセンス配布が継続できる仕組みを作ることが望ましいです。
3. グループポリシーで一元管理する
ドメイン環境では、セッションホストが増えてもグループポリシーでライセンスサーバーやライセンスモードを一括設定しておくと、個別の設定漏れを防げます。
4. セキュリティ強化のためのRDP関連の設定
RDPは外部からの攻撃対象になりやすいため、以下のような施策もあわせて検討してください。
- ネットワークレベル認証(NLA)の有効化
- RDPポート番号の変更(必要に応じて)
- VPN経由でのアクセス制限
- 多要素認証(MFA)の導入
よくあるQ&A
Q1. ライセンスの更新が必要なのは仮想マシン(VM)か、それともドメインコントローラー(DC)か?
ライセンスの更新は、基本的にライセンスサーバー(RDSライセンスを管理するサーバー)に対して行われます。VMやDCそれぞれにライセンスを適用するわけではなく、セッションホストが使用するCALを供給する役割がライセンスサーバーにあります。仮想マシンやDC自体がライセンスサーバーを兼ねているケースであれば、そこにライセンスを登録・更新します。
Q2. 「リモートデスクトップ ライセンスを付与するサーバーがありません」エラーが止まらない場合は?
レジストリとグループポリシーの両面で設定不備がないか再確認することが最優先です。また、ライセンスサーバーが正常にアクティブ化され、十分なライセンスがあるかをライセンスマネージャーでチェックしましょう。ファイアウォールやネットワークの問題で通信が遮断されていないかも要確認です。
Q3. Azure上の仮想マシンで発生した場合の対処は?
Azureでは、サブネットやNSG(Network Security Group)の設定などが影響する場合があります。RDPポートの許可やライセンスサーバーとの通信経路を確保できているか、Azure Portalで設定を見直してください。必要に応じてAzure Serial Consoleを活用し、OSレベルでのレジストリやイベントログを調査することも有効です。
まとめ
「リモートデスクトップ ライセンスを付与するサーバーがありません」というエラーは、ライセンスサーバーの設定、セッションホストのライセンスモード、ネットワーク構成など複数の要因が絡み合って発生することがほとんどです。まずはセッションホストにRDSライセンス(Remote Desktop Session Host)が正しくインストールされ、ライセンスモードとライセンスサーバーの指定が合っているかをチェックしましょう。そのうえで、ライセンスサーバーに十分なCALがあるか、期限切れになっていないかを確認し、グループポリシーやレジストリ設定を適切に行うことが重要です。必要であればサーバーを再起動して設定を反映させ、イベントログを詳しく確認してください。
ライセンス関連の設定は、ドメイン環境全体のユーザーが快適にRDPを利用するための基盤とも言えます。日頃からライセンスサーバーを定期的に監視し、追加ライセンスの計画やライセンスモードの最適化を行うことで、エラーを未然に防ぐことが可能になります。トラブルが起こってから慌てることのないよう、ぜひ今回紹介した内容を参考に、環境を整備してみてください。
コメント