【解決】「リモートデスクトップサービスは現在ビジーです」エラーの原因と対処法
Windows Server上で稼働するRDS(リモートデスクトップサービス)ファームサーバーに、標準のRDPクライアント(mstsc.exe)から接続しようとした際に、次のようなエラーメッセージが表示され、接続できないケースがあります。
実行しようとしている操作は完了できません。リモートデスクトップサービスが現在ビジー状態のためです。数分後に再度お試しください。他のユーザーは引き続きログオンできます。

この場合、RDSホストの管理者がタスクマネージャーの「ユーザー」タブを確認すると、ユーザー名の代わりに(4)という名前が付いた切断済み(Disconnected)ステータスのセッションが大量に残っているのが分かります。

この問題は、Windows Server 2008 R2、2012 R2、2016、2019のすべてのバージョンで発生し得ます。
エラーが発生する主な原因は以下の通りです。
- リモートデスクトップサービス自体の動作エラー
- csrss.exeプロセスの不具合
- ユーザープロファイルまたはprofsvcサービスの問題
- RDSHサーバーのメモリ不足やディスク容量不足
- グループポリシー設定の誤り
残念ながら、この問題を完全に解消できるMicrosoft公式の修正策は存在しません。できるのは症状の緩和のみです。
トラブルシューティングはほとんどの場合、問題のユーザーセッションのリセットかRDSサーバーの再起動で対応しますが、状況によっては問題が再発します。ここでは、簡単な順に対処方法を見ていきましょう。
RDSサーバーのリソースを確認する
まず、サーバーリソースが十分にあるかを確認しましょう。メモリ不足やディスク容量不足が原因でこの問題が発生することがあります。RAMの使用率と、OSがインストールされているドライブの空き容量(最低1GB以上が必要)をチェックしてください。また、イベントログを確認し、RDSに関連する重大なエラーが記録されていないかも併せて調べておくと安心です。
すべて問題なければ、次のステップへ進みましょう。
固まったクライアントのリモートデスクトップセッションをリセットする
まず試したいのは、「リモートデスクトップサービスは現在ビジーです」というエラーでログオンできないユーザーのセッションを見つけてリセットすることです。タスクマネージャーの「ユーザー」タブで該当ユーザーを見つけ、右クリックメニューからサインオフ(ログオフ)を選択します。多くの場合、これだけで問題は解決します。ただし、中にはユーザー名の代わりに(4)という名前のハングしたセッションが複数見つかることもあります。通常、ハングしたRDSユーザーセッションには以下の4つのプロセスが含まれています。
- Client Server Runtime Process(csrss.exe)
- Desktop Window Manager(dwm.exe)
- Windows Logon Application(winlogon.exe)
- Windows Logon User Interface
まずは前述の手順どおり、タスクマネージャーからすべての(4)セッションをリセットしてみてください。それでも解決しない場合は、サーバーの再起動が確実ですが、RDSホスト上の他のユーザーセッションに影響が出るため、簡単には再起動できないことも多いでしょう。そこで、ホストを再起動せずに問題を解決する方法を紹介します。
- 管理者権限のコマンドプロンプトを開き、次のコマンドを実行します。
query session
これにより、RDSホスト上の全ユーザーとそのリモートセッションの一覧が表示されます。出力の中で必要なのはSESSIONNAME、USERNAME、IDの3列です。(4)というユーザーを見つけ、対応するIDを確認します。この例ではID 2です。次に、このセッションで動作しているcsrss.exeプロセスを終了させる必要がありますが、まずはそのPIDを特定しましょう。 - 先ほど取得したセッションIDで実行中のプロセス一覧を表示します。
query process /id 2
IMAGE列でcsrss.exeプロセスを見つけ、そのPIDを確認します。この例ではPIDは5140です。このプロセスを終了させる必要があります。 - タスクマネージャーで確認します。タスクマネージャーを開き、「詳細」タブで前のステップのPIDとプロセスを探してください。
該当するPIDがcsrss.exeプロセスであることを確認したら、右クリックメニューからタスクの終了を選ぶか、コマンドプロンプトで次のコマンドを実行してプロセスを強制終了します。taskkill /F /PID 5140
(4)ユーザーが複数存在する場合は、それぞれについて同じ作業を行ってください。
RDSユーザーセッションをリセットする
タスクマネージャーから問題のユーザーをログオフできなかった場合は、コマンドプロンプトからRDSユーザーセッションをリセットしてみましょう。
- コマンドプロンプトを管理者として開き、次のコマンドを実行します。
query session
問題のユーザーのSESSIONNAMEを控えておきます。 - 続いて次のコマンドを入力します。
reset session <SESSIONNAME><SESSIONNAME>の部分には、下のスクリーンショットのように実際のセッション名を指定してください。
問題のあるRDSユーザーセッションごとにこの作業を繰り返します。その後、再度ログオンを試みれば、問題は再発しないはずです。可能であれば、サーバーを再起動しておくとなお確実です。
RDSホストのライセンス設定を確認する
RDSホストに設定されているライセンスサーバーとライセンスの種類(CAL Per User/CAL Per Device)が正しいことを確認してください。
筆者も実際に、RDSHロールのインストール後にリモートデスクトップライセンスロールを持つサーバーのホスト名/IPアドレスを指定し忘れたために、この「リモートデスクトップサービスは現在ビジーです」エラーに遭遇したことがあります。この場合、最初の2人のRDPユーザーは普段どおり接続できたものの、3人目がこのエラーに直面しました。
RDSライセンスサーバーのアドレスは、次のいずれかの方法で指定できます。
- RDSコレクションの設定:「タスク」→「展開プロパティの編集」→「RD ライセンス」→ライセンスサーバーの指定

- グループポリシー:指定されたリモートデスクトップライセンスサーバーを使用する(コンピューターの構成→ポリシー→管理用テンプレート→Windowsコンポーネント→リモートデスクトップサービス→リモートデスクトップセッションホスト→ライセンス)

- PowerShellを使用する方法(「リモートデスクトップセッションホストのライセンスモードが構成されていない」関連記事を参照)。
GPOでRDP接続数の上限を解除する
グループポリシーを使うと、同時に接続できるRDS接続の数を制限できます。既定では、このポリシー設定は無効になっています。
ポリシーが有効化されていないかを確認し、gpresultを使って設定値を取得しましょう。
- 管理者権限のコマンドプロンプトで次のコマンドを実行します。
gpresult /H c:\gpresult.html - Cドライブのルートに作成されたgpresult.htmlファイルを開きます。一般的なHTMLファイルですが、他のブラウザーでは表示が崩れることがあるため、Internet Explorerで開くことをおすすめします。
- 「コンピューターの構成→管理用テンプレート→Windowsコンポーネント→リモートデスクトップサービス→リモートデスクトップセッションホスト→接続」配下にある接続数の制限ポリシー設定を探します。ページ内検索で「接続数の制限」と入力して探すのも手軽です。
該当するポリシー設定が見つからない場合、そのポリシーは適用されておらず、同時接続数に制限はありません。ポリシーが有効で最大接続数が設定されている場合は、値を任意の数値に変更してください。ローカルグループポリシーエディター(gpedit.msc)で編集できるほか、ドメインGPOで設定されている場合はgpmc.mscで編集します。編集後は、忘れずにgpupdate /forceコマンドを実行し、新しいグループポリシー設定を即座に反映させましょう。
その他の対処法:どうしても解決しない場合
サーバーリソースに十分な余裕があり、RDPログにエラーが見られず、ユーザーセッションのリセットでも効果がなく、すぐにRDSHホストを再起動できない場合は、以下の対処を試してみてください。
- 新しいRDP接続の作成を妨げるドレイン(Drain)モードが無効になっているかを確認します。
chglogon.exe /QUERYコマンドで「New user logons are DISABLED, but reconnections to existing sessions are ENABLED(新規ユーザーログオンは無効、既存セッションへの再接続は有効)」と返された場合は、chglogon.exe /enableでドレインモードを無効化します。
- mstsc.exeクライアントのRDP接続設定で、ビットマップの永続的キャッシュのチェックを外します。

- 次のコマンドでリモートデスクトップサービスを再起動します。
net stop termserviceおよびnet start termservice。PowerShellを使えばリモートからも再起動できます。Get-Service termservice –ComputerName mun-rdsh1 | Restart-Service - すべてのtstheme.exeプロセスを強制終了します。
- 使用中のWindowsバージョンに最新の更新プログラムをすべて適用することをおすすめします。標準のアップデートツールや、PSWindowsUpdate PowerShellモジュールを活用しましょう。
-
Windows Server 2016/2012 にリモート デスクトップ サービス(ターミナル サービス)をインストール・構成する方法
この記事では、Windows Server 2016 または 2012 にリモート デスクトップ サービス(RDS)をインストールし、構成するための手順をステップバイステップで解説します。Windows Server 2016 および 2012 では、従来の「ターミナル サービス」の役割が「リモート デスクトップ セッション ホスト(RDSH)」という役割サービスに置き換えられ、「リモート デスクトップ サービス(RDS)」の一部として提供されています。リモート デスクトップ セッション ホスト(RDSH)サーバーは、RDP クライアントを使用するリモート ユーザーに対して、場所を問わず RD
-
【Windows Server 2016/2019】リモートデスクトップライセンスサーバーにRDS CALをインストールする方法
リモートデスクトップライセンスサーバーのインストールとアクティブ化がすでに完了している場合、次に行うのはリモートデスクトップサービスのクライアントアクセスライセンス(RDS CAL)をライセンスサーバーにインストールする作業です。この記事では、その具体的な手順をわかりやすく解説します。 Windows Server 2019 または Windows Server 2016 のRDSサーバーにRDS CALを新規インストール、あるいは追加する方法は以下の通りです。 RDS CALのインストール手順 1. リモートデスクトップライセンスマネージャーを開く サーバーマネージャーを開き、ツールメニュー