RD Web Client公開時エラーへの徹底対策:RD Web Accessがシステムにインストールされていない問題の解消法

Windows Server環境でRD Web Clientのセットアップを進めようとした際に発生する「RD Web Accessがシステムにインストールされていないようです」というエラーは、初見では原因がわかりにくく対処に時間を取られがちです。この記事では、エラー発生の背景から具体的な解決方法までをわかりやすく解説します。

RD Web Accessエラーの概要と背景

リモートデスクトップ関連の役割をWindows Serverにインストールするとき、特にRD Web Clientを使ってブラウザ経由でのリモート接続を実装しようとする場合に「Publish-RDWebClientPackage -Type Production -Latest」コマンドを実行すると、まれに「RD Web Accessがシステムにインストールされていないようです」(“RD Web Access does not appear to be installed on the system.”)というエラーが表示されることがあります。
このエラーが起きると、RD Web Clientの正常な配布(Production環境への配置)が行えず、リモートデスクトップのWebクライアントをユーザーが利用できなくなります。実際にサーバー マネージャーで「Remote Desktop Web Access」ロールを確認してもインストール済みである場合が多く、一見すると原因不明に思われがちです。

主な原因

このエラーにはいくつかの要因が考えられます。

  • RD Web Accessロールが実際には正しくインストールされていない
  • RD Web AccessとRD接続ブローカーなど、RDSの他のロール構成が不完全
  • IISの構成が未完了または役割サービス不足
  • RDWebClientManagementモジュール自体のバージョンやPowerShellのバージョンとの互換性問題

原因として挙げられるのは、単純なインストール漏れやインストール手順の誤りだけでなく、複数のロール構成における連携不備など多岐にわたります。

エラー発生時の基本的なチェックポイント

1. ロール構成の再確認

Windows Serverを使用したリモートデスクトップサービス(RDS)の導入時には、次のロールが絡んできます。

  • RDゲートウェイ(RD Gateway)
  • RD接続ブローカー(RD Connection Broker)
  • RD Web Access(RD Web)
  • RDセッションホスト(RD Session Host)

小規模~中規模の環境では1台のサーバーにすべてのロールをまとめてインストールする「シングルサーバー構成」を行うケースが多いですが、この際にRD Web Accessロールのインストールが抜けていないか、あるいは他ロールとの構成が不整合を起こしていないかを入念に確認してください。

ロールのインストール状況をチェックする

サーバー マネージャーの「役割と機能の追加」画面から、以下を確認します。

  1. サーバーの役割で「リモート デスクトップ サービス」がインストールされているか
  2. さらに詳細として「リモート デスクトップ Web アクセス」のチェックが入っているか
  3. Webアクセス以外の必要なロール(ゲートウェイや接続ブローカーなど)も正しく配布されているか

もしRD Web Accessだけでなく他のロールにも抜けやミスがある場合は、一度アンインストールして再インストールするのも有効な手段です。これは必要なIISのコンポーネントが正しく入り直すケースにもつながります。

2. IISの設定と役割サービスの確認

RD Web Accessは内部でIIS(Internet Information Services)を用いてWebサイトを構成します。以下の役割サービスが欠けている場合、正常に動作しない原因になることがあります。

  • IIS管理コンソール
  • 静的コンテンツ
  • ASP.NET
  • .NET拡張機能
  • ISAPI拡張/ISAPIフィルター
  • その他、RDSの要件として指定されているIIS関連コンポーネント

特にASP.NET周りのコンポーネントが未インストールだと、Webクライアントが動作しない場合があります。
サーバー マネージャーの「Web サーバー (IIS)」→「役割サービス」を詳細にチェックして、必要な項目がすべてインストールされているか確認してみてください。

表:RD Web Accessで必要とされる主なIIS役割サービス例

役割サービス名役割説明
IIS管理コンソール管理・監視機能IISの設定をGUIおよびスクリプトで変更可能にする
静的コンテンツ基本的なWeb配信機能HTMLやCSSなどの静的ファイルを配信する
ASP.NETWebアプリケーション実行環境.NETベースのWebアプリケーションを動作させる
ISAPI拡張/ISAPIフィルター拡張モジュールASP.NETなどの処理を実現するための機能
HTTPリダイレクトHTTP通信のリダイレクト設定HTTP→HTTPSなどのリダイレクト設定が必要な場合に使用

これらがすべて必須とは限りませんが、RD Web Accessを動作させるうえで特にASP.NETやISAPI関連は重要なポジションを占めています。

「RD Web Accessがインストールされていない」エラー解消に向けた具体策

1. サーバーマネージャーのRDS構成ウィザードをやり直す

RD Web Accessのロールを手動でインストールした場合、構成ウィザードによる設定が未完了だとRD接続ブローカーとの連動が不完全になり、「インストールはされているはずなのに認識されない」という事態が起こります。
サーバーマネージャーの「リモート デスクトップ サービス」から「展開の概要」画面に進み、必要な役割ごとにウィザードを実行してみてください。

  1. RD接続ブローカーを指定する
  2. RD Web Accessを指定する
  3. RDセッションホスト(や必要に応じてRDゲートウェイなど)を指定する

これらが正しいサーバーに割り当てられたのち、ウィザードが最後まで完了しているかどうかが重要です。

2. RDWebClientManagementモジュールとPowerShellバージョンの確認

RD Web Clientのセットアップには「RDWebClientManagement」というPowerShellモジュールを使用します。

# RDWebClientManagementモジュールのインストール例
Install-Module -Name RDWebClientManagement -Force

上記のようにインストールができていても、PowerShellのバージョンやモジュールのバージョンが古いと、コマンド実行時にエラーが出る可能性があります。
次のコマンドでPowerShellのバージョンを確認してみてください。

Get-Host

PowerShellが5.1以上であれば多くの場合問題ありませんが、Windows Server 2019以前のバージョンアップが不完全なままだとバージョンが合わないケースもあります。また、モジュール自体も最新にアップデートしておくとよいでしょう。

Update-Module RDWebClientManagement

もしモジュールを完全に削除して再インストールしたい場合は以下のように行えます。

Uninstall-Module -Name RDWebClientManagement
Install-Module -Name RDWebClientManagement -Force

3. 「Publish-RDWebClientPackage -Type Production -Latest」の実行手順

実際にRD Web Clientを公開するためには、以下のコマンドを実行します。

Publish-RDWebClientPackage -Type Production -Latest

しかしこの時点で「RD Web Accessがシステムにインストールされていない」と表示される場合は、以下をチェックしてみてください。

  1. RD Web Accessと連携するRD接続ブローカーが別サーバーで稼働している場合、そのサーバーからコマンドを実行しているか
  2. 実行アカウントにRDS管理権限(またはドメイン管理権限)が付与されているか
  3. (シングルサーバー構成の場合)役割インストールが完了した後にサーバー再起動を行ったか

多サーバー構成の場合、RD接続ブローカーをホストしているサーバーに対して行うのが正しい手順です。逆に、RD Web Accessをインストールしたサーバー上でコマンドを実行してもブローカーとの連携がとれていないとエラーになることがあります。

さらに踏み込んだトラブルシューティング

1. イベントビューアーのログ確認

Windows Serverで不具合が生じた場合は、イベントビューアーを活用することで原因究明の手がかりを得られます。

  • 「アプリケーションとサービス ログ」→「Microsoft」→「Windows」→「TerminalServices-*」
  • 「システム」や「アプリケーション」ログ

これらの場所に、エラーや警告メッセージが出力されていないか細かくチェックしてください。RD Web Accessに関連するイベントが記録されていれば、具体的な原因が特定できる場合があります。

2. RD Web Access構成フォルダの確認

RD Web Accessのサイトファイルはデフォルトで以下のような場所に配置されます。

C:\Windows\Web\RDWeb\

内部に「Pages」フォルダや「WebClient」フォルダが存在しますが、これらが欠損していたり、アクセス権限に問題があると正常にWebクライアントが配布されません。万が一、誤ってフォルダを削除・変更してしまった場合は、ロールを再インストールすることで復旧できます。

3. ネットワーク経路やファイアウォールの設定

RD Web Accessは通常、HTTPS(ポート443)を通じてユーザーにサービスを提供します。セキュリティ上の理由などで誤ってポートを塞いでいる場合、RD Web Clientの配布自体が検出されず、エラーとして扱われるケースもゼロではありません。ファイアウォール設定やロードバランサーの設定がある場合は再確認してください。

よくあるQ&A

Q1: RD Web Accessロールを確実にインストールしたのにエラーが消えない

A1: 役割はインストールされていても、構成ウィザードが完了していなかったり、IISのコンポーネントが一部不足している可能性があります。サーバー マネージャーで詳細な役割サービスを確認し、必要に応じて一度アンインストール→再インストールを試してみるのが無難です。

Q2: マルチサーバー環境でどのサーバーからコマンドを実行すべきか

A2: 通常、「RD接続ブローカー」の役割を持つサーバーで「Publish-RDWebClientPackage -Type Production -Latest」コマンドを実行します。または、RD接続ブローカーに加えてRD Web Accessの役割を合わせ持つサーバーです。どのサーバーがブローカーを担っているかはサーバー マネージャーの「リモート デスクトップ サービス」一覧で確認しましょう。

Q3: RDWebClientManagementモジュールのバージョン互換性はどのように確認する?

A3: PowerShellで Get-Module RDWebClientManagement -ListAvailable を実行すると、インストールされているモジュールのバージョンを確認できます。また、Microsoft公式ドキュメントの「Set up the Remote Desktop web client for your users」ページに最新バージョンの情報が掲載されているため、そこと照らし合わせて古い場合はアップデートを実行してください。

実践的な対処手順のまとめ

手順1:サーバー マネージャーでRD Web Accessロールを再確認

  1. 「役割と機能の追加」で「リモート デスクトップ サービス(RDS)」を展開する。
  2. 「リモート デスクトップ Web アクセス(RD Web Access)」にチェックが入っていることを確認。
  3. インストール状態が怪しい場合は一度削除のうえ、再度インストールしてサーバーを再起動する。

手順2:IISと関連機能の点検

  1. 「Web サーバー(IIS)」の役割がインストールされているか確認。
  2. 「ASP.NET」や「ISAPI 拡張 / フィルター」、「静的コンテンツ」など必須要素が漏れなく入っていることをチェック。
  3. インストール後、サーバーを再起動し構成が確実に反映されたかを確認。

手順3:サーバー マネージャーのRDS展開ウィザードを実行

  1. 左ペインの「リモート デスクトップ サービス」をクリックし「展開の概要」を選択。
  2. すべてのロール(RDゲートウェイ、RD接続ブローカー、RD Web Access、RDセッションホストなど)を配置するサーバーを指定。
  3. ウィザードが完了してエラーがないかを確認。

手順4:RDWebClientManagementモジュールの再導入

  1. PowerShellを管理者権限で起動。
  2. Uninstall-Module -Name RDWebClientManagement でアンインストール。
  3. Install-Module -Name RDWebClientManagement -Force で再インストール。
  4. Get-Module RDWebClientManagement でバージョンを確認し、最新版であることを確かめる。

手順5:「Publish-RDWebClientPackage -Type Production -Latest」の実行

  1. RD接続ブローカーが動作しているサーバーに管理者権限でログオン。
  2. PowerShellを起動し、以下を実行。
   Publish-RDWebClientPackage -Type Production -Latest
  1. エラーが出ないかを確認。正常に完了すればRD Web ClientがProduction環境に配布される。
  2. ブラウザで「https://<サーバー名またはFQDN>/RDWeb/webclient/index.html」などにアクセスし、Webクライアントが利用可能かテストする。

Microsoft公式ドキュメントと参考リンク

公式ドキュメントでは、PowerShellモジュールの導入や、マルチサーバー構成でのRDS構成方法などが詳しく説明されています。トラブルシュートの際はイベントビューアーやPowerShellのログを併用し、具体的なエラーコードをもとに検索するとより早く解決にたどり着けるでしょう。

まとめと今後のメンテナンス

今回のエラーである「RD Web Accessがシステムにインストールされていない」問題は、実際にはインストール済みのロールやIIS構成が正常に認識されていない状況で起こることが大半です。以下のポイントを押さえておくと、運用中のトラブルを未然に防ぎやすくなります。

  • RDS構成ウィザードの実行完了:役割を個別にインストールするだけでなく、ウィザードで全体構成を行うと不整合が起こりにくい
  • IISコンポーネントの抜け漏れ:IISの役割サービスは非常に細かく分類されているため、RD Web Accessに必須の項目が漏れていないか再チェック
  • PowerShellモジュールの更新:定期的にアップデートし、バージョンの不整合を避ける
  • イベントログの定期確認:異常発生の兆候をイベントログで見逃さないようにする

一度正常にRD Web Clientが動作する環境を整えれば、その後のアップデート時や構成変更時にも同様のエラーが出る可能性は大幅に下がります。とはいえ、Windowsアップデートやセキュリティポリシーの変更でIIS関連サービスやRDSの動作に影響が及ぶこともあるため、定期的なメンテナンスと検証環境での動作確認を行うことをおすすめします。

コメント

コメントする