Windows Server 2019をHyper-Vのホストとして運用していると、いつの間にかホスト側へのリモートデスクトップが利用できなくなる現象に遭遇することがあります。本記事では、RDSライセンス設定や管理接続のポイントなど、原因と対処法を幅広く解説します。
RDSセッションホストへの接続が失敗する背景
Windows Serverは、管理用のリモートデスクトップ接続のみであればライセンスサーバーを別途用意せずに2ユーザー分まで同時接続が可能です。しかし、サーバーに「リモート デスクトップ セッション ホスト(RDSH)」の役割をインストールすると、120日間のグレース期間を過ぎるとRDSライセンスサーバーの設定が必須となります。これを誤って理解していると、ある日突然「ライセンスサーバーが利用できません」などのエラーが表示され、物理ホスト側へリモート接続ができなくなることがあります。
管理者がHyper-Vホストとして使っている物理サーバーのWindows Server 2019に対して、OSインストール直後は問題なくリモート接続できていたのに、ある時期を過ぎると急に接続できなくなるケースは少なくありません。特に、ゲストOS側にRDS関係の役割を追加していなくても、ホスト側にRDSHを意図せずインストールしてしまっていたり、ライセンスモードを正しく設定していないなどの原因が考えられます。
よくあるエラーメッセージと原因
以下のようなエラーメッセージが表示されたら、RDSライセンス周りが原因となっている可能性が高いです。
エラーメッセージ | 考えられる原因 |
---|---|
No license server available (ライセンスサーバーが利用できません) | RDSライセンスサーバーが構成されていないか、ライセンス認証が完了していない |
Remote Desktop licensing mode is not configured (リモートデスクトップのライセンスモードが構成されていません) | グループポリシーやレジストリでライセンスモードを指定していない |
The remote session was disconnected because there are no Remote Desktop License Servers available to provide a license (利用可能なライセンスサーバーがなく、接続が切断されました) | ライセンスサーバーを指定していない、またはライセンスサーバーが無効になっている |
これらのエラーを解消するには、RDSHロールのインストール状況とライセンスサーバーの設定状況を正しく見直すことが必要になります。
RDSライセンスエラー解消のステップ
1. グループポリシーを使ったライセンスサーバーの指定
もしRDSライセンスサーバーを用意しているのであれば、ホスト側のグループポリシー設定からライセンスサーバーを明示的に指定します。
- 「Windows + R」キーで「ファイル名を指定して実行」ダイアログを開き、
gpedit.msc
を入力してグループポリシーエディタを起動します。 - 以下のパスをたどります。
コンピューターの構成 └ 管理用テンプレート └ Windowsコンポーネント └ リモート デスクトップ サービス └ リモート デスクトップ セッション ホスト └ ライセンス
- 「指定したリモート デスクトップ ライセンス サーバーを使用する」を「有効」にし、そこに正しいライセンスサーバーのホスト名(FQDNなど)を入力します。
- 「リモート デスクトップのライセンス モードを設定する」を「有効」にして、
Per User
またはPer Device
を選択します。保有しているRDS CALの種類に合わせて設定する必要があります。
設定を反映させるためには再起動またはグループポリシーの再読み込みが必要となる場合があります。再読み込みするには管理者権限のコマンドプロンプトまたはPowerShellで次を実行します。
gpupdate /force
これにより、すぐにグループポリシーの変更が反映されやすくなります。
2. ライセンスサーバーのアクティブ化とCALのインストール状況を確認
ライセンスサーバーを運用している場合は、以下の点を再確認します。
- 「サーバーマネージャー」→「リモート デスクトップ サービス」→「概要」→「RDライセンス」を開いて、ライセンスサーバーが「アクティブ化済み」になっていることをチェックします。
- インストールされているRDS CAL(ユーザーCALまたはデバイスCAL)の有効期限や数を確認します。
- ライセンスの有効期限切れや誤ったエディションのCALをインストールしていないかも確認しましょう。
ライセンスサーバーが正しくアクティブ化されていなかったり、CALが正しくインストールされていないと、ホスト側がライセンスを取得できず接続できない問題が起きます。
3. RDS関連の役割サービスを正しくインストールしているか確認
ライセンスを管理するには「リモート デスクトップ ライセンス」役割が必要です。役割が誤ってインストールされている、あるいはインストールしていないのにライセンスが必要な設定になっているなどの不整合が起こっていないか確認します。
サーバーマネージャーの「役割と機能の追加」ウィザードで、次の点をチェックしましょう。
- 「サーバーの役割」画面で「リモート デスクトップ サービス」を展開し、「リモート デスクトップ セッション ホスト」や「リモート デスクトップ ライセンス」がインストールされているかどうか。
- 「リモート デスクトップ ライセンス」がインストールされているサーバーがどれかを把握し、そのサーバーがアクティブ化されているかを確認する。
また、以下のPowerShellコマンドを使うとインストールされている機能を一覧で確認できます。
Get-WindowsFeature | Where-Object {$_.Name -like "RDS*"}
「Installed」の項目が「True」になっているかどうかをチェックし、不用意にセッションホストやライセンスサーバーのロールが入っていないか、必要なロールが欠けていないかを見極めましょう。
役割が競合している場合の対処
もしホストサーバー自身は管理目的でしか接続しないのに誤ってRDSセッションホスト役割をインストールしているのであれば、RDSのライセンス設定をせずに管理用リモートデスクトップのみで運用したい場合は、その役割をアンインストールすることで解決することが多いです。サーバーマネージャーから「役割と機能の削除」を実行し、不要なRDSセッションホストの機能を外してください。これにより、従来の管理者用2ユーザーの接続が復活します。
4. ファイアウォールやネットワーク設定の見直し
ライセンスサーバー周りの構成が正しくても、ネットワーク的な問題でライセンス通信が妨げられているケースも考えられます。特に以下の点を確認してください。
- Windows Defender ファイアウォールやサードパーティ製ファイアウォールでTCPポート3389(RDP)やライセンス通信に必要なポート(通常TCP 135、TCP 49152〜65535などのRPCポート)がブロックされていないか。
- Hyper-Vの仮想スイッチ設定で、物理ホストとゲスト間の通信が意図せずブロックされていないか。
- ホストの名前解決(DNS設定)が適切に行われており、ライセンスサーバーのFQDNが解決できるか。
場合によっては、イベントビューアのアプリケーションログやシステムログにライセンス関連のエラーが記録されているかどうかを調べると原因究明が早まります。
5. サーバーの再起動
RDS関連の設定を行ったあとや、ライセンスサーバーを新たにアクティブ化した後には、Hyper-Vホストを含めたサーバーを再起動すると問題が解決する場合があります。特にライセンスモードやライセンスサーバーのグループポリシーを変更した場合は、再起動をして設定が確実に反映されているか確認しましょう。
管理者権限での2接続だけを使いたい場合
「RDSセッションホスト」役割を削除する
管理者権限でリモートデスクトップを2ユーザーまで使うだけであれば、本来はRDSライセンスサーバーを用意しなくてもWindows Serverの機能で対応可能です。ところが、RDSセッションホストの役割をインストールしている状態だと、120日間のグレース期間が過ぎた時点でライセンスサーバーなしでは接続できなくなります。
もし物理ホスト側の利用が管理目的のみ(つまりユーザーに対してアプリケーション公開をしない)であれば、以下の手順でセッションホストの役割を削除し、「管理用リモートデスクトップ(旧称:管理モード)」へ戻すのがおすすめです。
- サーバーマネージャーを開き、「役割と機能の削除」をクリックします。
- インストール済みのロール一覧の中で「リモート デスクトップ サービス」を展開し、「リモート デスクトップ セッション ホスト」にチェックが入っている場合はオフにします。
- ウィザードの指示に従って進め、サーバーの再起動を実行します。
これにより、ライセンスサーバーなしでも2ユーザー分までの管理接続が可能な状態に戻ります。ただし、今後リモートデスクトップセッションで実際のアプリケーションを複数ユーザーに提供したい場合は、再びRDSHとライセンスサーバーの役割を正しく導入する必要があります。
管理用リモートデスクトップの位置付け
Windows Serverに標準で備わっている「管理用リモートデスクトップ」はサーバー管理者がサーバーコンソールに物理的にアクセスできない場合でも管理作業を行うための簡易的な手段です。セッションホスト機能とは異なり、大規模にユーザーがアクセスすることは想定されていません。この管理用アクセスのみであれば、RDS CALは不要です。その代わり、同時接続数は2ユーザーまでに制限されています。
追加のトラブルシューティング
イベントビューアでのログ確認
ライセンス周りの問題が起きている場合、イベントビューアの「アプリケーション」ログや「システム」ログ、あるいは「RemoteDesktopServices-LocalSessionManager」「TerminalServices-RemoteConnectionManager」などのログにエラーが出力されることがあります。とくに以下のソースやイベントIDをチェックしてください。
- ソース:「TermServLicensing」「TerminalServices-RemoteConnectionManager」など
- イベントID:21、22、1010などのRDSライセンス関係のエラー
該当するエラーの詳細メッセージを読み解くことで、ライセンスサーバーの接続障害なのか、CALの期限切れなのかを特定できる場合があります。
RDSライセンスとリモートデスクトップサービスの再インストール
どうしても問題が解消しない場合や、構成を大幅に誤ってしまった可能性がある場合には、RDSライセンスの役割やRDSセッションホストを一度削除して再度導入し直す方法があります。ただし、本番運用中のサーバーの場合は慎重な計画とバックアップを行ったうえで実施してください。ライセンスサーバーの再インストール時には、ライセンス証明書を再インストールし直す必要があることもあります。
CALの種類と使い分け
RDS CALには「ユーザーCAL」と「デバイスCAL」の2種類が存在します。
- ユーザーCAL:特定のユーザーごとにCALを割り当てる方式。ユーザー数が多い組織でも、1人につき1ライセンスを確保すれば複数デバイスからアクセスしてもよい。
- デバイスCAL:デバイス(端末)ごとにCALを割り当てる方式。同一デバイスを複数ユーザーが利用する形態で有利になる。
組織の運用形態に応じてどちらを選ぶか、導入前に十分検討することが重要です。ライセンスモード(Per UserまたはPer Device)をグループポリシーなどで指定する際は、このCALの種類に合った設定を行いましょう。
まとめ
Server 2019を物理ホストとして運用しながらHyper-VゲストVMを利用する環境で、突然ホスト側へのリモートデスクトップ接続ができなくなる場合、多くはRDSライセンスの設定ミスやグレース期間切れが原因となります。特にセッションホスト役割をインストールしている場合は、ライセンスサーバーを正しくアクティブ化してCALを適切に割り当てる必要があります。もし管理者用の2接続だけを利用したいのであれば、RDSセッションホスト役割を削除して標準の管理接続に戻すことで問題を解決できます。
運用の目的やユーザー数に合わせて最適なライセンス形態を選択し、構成の誤りを防ぐことが重要です。トラブルが発生した際には、グループポリシー設定の再確認、ライセンスサーバーの状態確認、イベントログのチェックなどを行い、必要に応じて役割の再インストールも視野に入れましょう。正しい手順で設定を行えば、安定したリモートデスクトップ環境を維持することができるはずです。
コメント