RDSホストとRDS CALサーバーのライセンス問題を解決する方法

近年、組織内のリモートアクセスやリモートワークの需要が増える中、Windows Serverのリモート デスクトップ サービス(RDS)を活用する場面が急増しています。しかしながら、RDSを運用していると、ライセンスの割り当てや接続セッション数の制限に起因する問題が想定外のタイミングで発生しがちです。本記事では、RDSホストがRDS CALサーバーからライセンスを取得できず複数ユーザーが同時にログインできないケースや、CyberArk PAM(Privileged Session Manager)経由でのアクセス時にライセンスが割り当てられないケースなど、具体的なトラブルシュートの流れと解決策を詳しく紹介します。

RDSライセンス問題が起こる背景とよくある症状

RDS(リモート デスクトップ サービス)は、ユーザー単位(Per User)またはデバイス単位(Per Device)でCAL(Client Access License)を管理する仕組みを提供しています。一般的にユーザー単位のRDS CALを採用している環境では、多数のユーザーが同時にRDSホストへアクセスすることが想定されており、ライセンスサーバーが適切に動作していればライセンスが不足していない限りエラーになることはありません。しかし、以下のような症状が見られる場合は要注意です。

  • 複数ユーザーでログインを試みると「ライセンスが足りない」や「ログオフするユーザーを選択してください」といった警告が表示される
  • RDSライセンス診断ツール(RD License Diagnoser)では十分なCALが残っていると表示されるにもかかわらず、実際には2ユーザー以上のログインが拒否される
  • CyberArkなどの外部ツール経由でアクセスするユーザーだけがライセンスを取得できず、直接ログインするスタンドアロンユーザーは問題なくライセンスを取得できる

発生しやすい原因の例

  • グループポリシー(GPO)の設定やレジストリの設定ミス
  • ファイアウォールやネットワーク関連の設定不足
  • ライセンスモードの誤設定(Per DeviceとPer Userの混在など)
  • ライセンスサーバーが正しくアクティベートされていない、あるいはCALのインストールが失敗している
  • 外部接続のプロキシやPAM製品側との通信が正常に確立していない

基本的な設定確認

RDSライセンス問題が発生した場合、まずはWindows Server側の基本設定を確認しましょう。特にGPOとレジストリの設定は、RDSホストがライセンスサーバーを正しく認識するために重要です。

グループポリシー(GPO)の設定

GPOの設定はドメイン環境であればドメインコントローラー(DC)上のグループポリシー マネジメントコンソール(GPMC)から、またスタンドアロン環境ならRDSホストのローカルグループポリシー(gpedit.msc)から確認できます。
以下のパスを開き、設定を確認してください。
コンピューターの構成 → 管理用テンプレート → Windows コンポーネント → リモート デスクトップ サービス → リモート デスクトップ セッション ホスト → ライセンス

  1. 「指定されたリモート デスクトップ ライセンス サーバーを使用する」
  • 有効になっているか
  • RDS CALサーバーのFQDNやIPアドレスが正しく指定されているか
  1. 「リモート デスクトップ ライセンス モードの設定」
  • 有効になっているか
  • 「Per User」または「Per Device」の設定が誤っていないか

設定変更後は下記コマンドでポリシーを即時反映させることを推奨します。

gpupdate /force

GPO設定の注意点

  • ドメインレベルのグループポリシーとローカルグループポリシーの両方が競合していると、意図しない設定が上書きされる場合があります。
  • 企業によってはセキュリティポリシーが厳重に設定されており、RDS関連のGPOが別のOU(組織単位)にだけ適用されるなど、複雑な階層構造になっていることがあります。どのOUやサイトにポリシーが適用されているかを確認してください。
  • GPOを設定しても、実際にRDSホストが再起動されるまでレジストリに反映されないケースもあるため、トラブルシュート時は再起動による反映を試すことも検討しましょう。

レジストリの設定

RDSに関する重要なレジストリキーは以下のパスに含まれています。実際に値を照らし合わせながら、誤った設定やタイプミスがないか確認しましょう。

  • HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TermService\Parameters\LicenseServers

ここで特に注意すべきは以下の点です。

  1. ライセンスモード
  • 「Per User」の場合はレジストリ上で値が「4」になっているケースが多い
  • 「Per Device」の場合は値が「2」になっているケースが多い
  1. ライセンスサーバーの指定
  • FQDNまたはIPアドレスの記載に誤りがないか
  • スペルミスや不要な空白が含まれていないか
  1. ポリシーからの上書き設定
  • 上記レジストリ値はGPO設定によって強制的に書き換えられることがあるため、GPOの確認が先行されていないと再起動などで再度意図しない値に戻ってしまう可能性があります。

ファイアウォールとネットワーク通信を徹底チェック

RDSのライセンスサーバーとの通信には特定のポートが必要です。特にCyberArk PAM(Privileged Session Manager)や別のプロキシサーバー経由でアクセスする場合は、ネットワークの経路が複雑になります。ファイアウォール設定が不足していると、意図せずライセンス発行の通信がブロックされるケースが見られます。

典型的に必要なポート

以下にRDSおよびライセンス関連で用いられる代表的なポートを一覧表で示します。

ポート番号用途
TCP 3389RDP接続(リモート デスクトップ)
UDP 3389RDPのパフォーマンス向上用(Audio/Video最適化など)
TCP 135RPCのエンドポイントマッパー(ライセンス通信で利用)
TCP 49152〜65535動的RPCポート範囲(ライセンスサーバーとの通信で必要)

CyberArk PAMなどの外部サーバーからRDSホストへの接続がうまくいかない場合、上記ポートのうちどれがブロックされているのかを確認することが重要です。

ファイアウォールルールの設定方法

Windows Serverのファイアウォールは「Windows Defender ファイアウォールの詳細設定」から確認できます。以下はTCP 3389ポートを新規に許可する例です。

New-NetFirewallRule -DisplayName "Allow RDP 3389 Inbound" `
    -Direction Inbound `
    -Protocol TCP `
    -LocalPort 3389 `
    -Action Allow

複数のサブネットやVPNからのアクセスがある場合は、Scope(スコープ)の設定で許可するリモートIPアドレスを限定する、あるいは適切なネットワークプロファイル(ドメイン/パブリック/プライベート)を指定するなどの調整が必要になります。

ファイアウォール設定不足の症例

  • ネットワーク管理者が新しいサブネットを追加してもファイアウォール側のルールを更新していなかった
  • RDSホスト側ではTCP 3389など必要なポートを許可済みだが、ライセンスサーバーへのRPC通信がブロックされていた
  • CyberArk PAMのサーバーが二重化されており、サーバーAからは接続できるがサーバーBのIPアドレスからの通信が許可されていない

CyberArk PAM経由でのライセンス割り当て不具合

CyberArk PAMを導入している環境では、セキュリティ強化のためRDPセッションが一旦PAMサーバーを経由します。このとき、RDSホストから見るとアクセス元がPAMサーバーのIPアドレスになるため、ライセンスサーバーとの通信フローが異なることがあります。

具体的なトラブル事例

  1. ユーザー単位のCALが割り当てられない
  • 通常はユーザーごとにライセンスサーバーがCALを発行するが、PAMサーバー経由だと「ユーザー名の解決」が正常に行えず、ライセンスサーバーが発行対象を特定できないケースがある。
  1. 一部のPAMサーバーからのみ通信が失敗する
  • PAMサーバーが二重化された環境で、片方のサーバーからの接続のみ成功、もう片方は失敗する場合、ファイアウォール設定やTCPポートの疎通性を確認する必要がある。
  • 一部のネットワーク機器(ロードバランサやIPS/IDSなど)がセッションの再割り当て(NAT処理)を行っており、ライセンスサーバーとの通信が途切れるケースもある。

切り分けポイント

  • PAMサーバーを経由しない直接接続(スタンドアロンユーザー)でRDSホストにログインしてみる
  • ネットワーク監視ツール(Wireshark、tcpdumpなど)を用いて、ライセンスサーバーとRDSホストの間でTCPハンドシェイクが成立しているかを確認する
  • PAMサーバーからRDSホストへ正常にパケットが届いているかをファイアウォールログでチェックする

最終的な原因と解決策

上述のように、RDSホストが複数ユーザーの接続を受け付けられない問題の根本原因は、以下のいずれか、あるいは複数の要因が重なっていることが多いです。

  • ライセンスサーバーの設定不備: GPOやレジストリのライセンスモードが不一致、ライセンスサーバーアドレスの指定が誤りなど
  • ファイアウォールルール不足: 新しいサブネットや特定のIPアドレスからのアクセスが許可されていない
  • CyberArk PAMとの通信不具合: PAMサーバーが二重化されている場合の片側のみ通信が通らない、ユーザー単位CALの発行プロセスが阻害されている

それぞれの問題に対して、最終的には以下の対策を講じることで解消できます。

1. GPO・レジストリを再設定し、RDSライセンスモードとライセンスサーバーを正確に指定する

  • GPOで「指定されたリモート デスクトップ ライセンス サーバーを使用する」を有効にし、ライセンスサーバーのホスト名を正しく入力する
  • 「リモート デスクトップ ライセンス モードの設定」でPer Userを選択している場合は、レジストリのHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\RCM\Licensing Core でValueを「4」にするなど整合性を取り、再起動やgpupdate /forceによる強制更新を実施する

2. 不足しているファイアウォールのInboundルールを追加する

  • RDSホストとライセンスサーバー間のTCP 3389、135、動的RPCポート(49152〜65535)などを双方向で許可する
  • CyberArk PAMサーバーのIPアドレスからRDSホストへの通信経路を明示的に許可する
  • セキュリティグループやネットワークACL(クラウド環境の場合)など含め、すべての経路で同様のルールを設定する

3. CyberArk PAM経由でもユーザー情報が正しく引き継がれるよう設定する

  • PAMサーバーの設定で、ユーザーのログイン情報がRDSホスト側に正しく渡されるように構成を見直す
  • イベントログやPAM側のセッションログを追跡し、どのタイミングでライセンス要求が失敗しているかを特定する
  • PAMサーバーがクラスター構成の場合は両サーバーで同一の設定を反映し、ファイアウォールルールも同じ内容になっているか確認する

トラブルシュートをより円滑に進めるためのアドバイス

リモート デスクトップ サービスに関するトラブルシュートは、OSやネットワーク、セキュリティ製品など複数の知識が要求されるため混乱しがちです。以下のポイントを押さえながら作業を進めると、よりスムーズに問題解決が進むでしょう。

ログと診断ツールを活用する

  • RD License Diagnoser: リモート デスクトップ セッション ホストの「診断」の項目から、ライセンスの残量やライセンスサーバーへの接続状況を確認できる
  • Windowsのイベントビューア: Applications and Services Logs → Microsoft → Windows → TerminalServices-LocalSessionManager および TerminalServices-RemoteConnectionManager などを見る
  • CyberArk PAM側のログ: セッションが中断された時刻やユーザー情報の引き継ぎ状況を確認

ライセンスの有効期限やCALの合計数を確認

  • Per User CALを導入している場合でも、ライセンスサーバーに登録しているライセンス数が本当に足りているか再確認する
  • ライセンスがMicrosoftのライセンス認証サーバーと正常にアクティベートされているか、ライセンスマネージャーでステータスをチェックする

最悪の場合はライセンスの再インストールを検討

  • ライセンスサーバー自体が正常に動作していない場合は、ライセンスを再度インストールし直すことも最終手段として考えられる
  • ボリュームライセンスセンター(VLSC)から取得したライセンス情報を再インポートする
  • 必要に応じてライセンスサーバーを再起動し、RDSH側のライセンス認証をリセットする

まとめ

RDS環境で、ユーザー単位のRDS CALを導入しているにもかかわらず「2ユーザー以上が同時接続できない」「一部のユーザーにライセンスが割り当てられない」といったトラブルは珍しくありません。特に以下のポイントに注意することで、問題を早期に解決しやすくなります。

  • GPOとレジストリの設定整合性: ライセンスモードやライセンスサーバーの指定が一致しているか
  • ファイアウォールとネットワーク経路の確認: TCP 3389や135などのポートを正しく許可し、PAMサーバー経由のアクセスにも対応する
  • 外部製品(CyberArk PAM)の特性: 二重化されたサーバーで一方のみ通信が通らない場合、ファイアウォールやネットワーク設定を個別に見直す
  • ライセンスサーバーの正常性: RD License Diagnoserやイベントログ、ライセンスマネージャーを用いて、CALが適切に認証されているか定期的に確認する

ライセンス関連の問題はセキュリティポリシーやネットワーク構成の変更によって突然顕在化することがあります。日頃からRDSの各種ログを把握し、変更時にはネットワークやファイアウォール設定を都度確認することで、大規模な障害を未然に防ぐことが可能です。複数のユーザーが安定してRDSに接続できる環境を整え、効率的なリモートワークやサーバー運用を実現しましょう。

コメント

コメントする