リモートデスクトップで「内部エラーが発生しました」と表示される原因と対処法
Windows 10から、新しく構築したWindows Server 2012 R2のRDSH(リモートデスクトップセッションホスト)サーバーにRDPで接続しようとした際、「An internal error has occurred(内部エラーが発生しました)」という奇妙なメッセージが表示され、接続できない事例がありました。前日までは問題なくリモートデスクトップ接続できていたのに、RemoteAppsのインストールと設定、サーバーの再起動を行った後から急にデスクトップへ接続できなくなったのです。パスワード入力を求められることから、リモートデスクトップサービス自体は動作しているように見えます。
RDP接続時に表示される「内部エラーが発生しました」というメッセージは、さまざまな状況で発生しうるもので、リモートデスクトップのサーバー側とクライアント側のどちらの問題によっても引き起こされる可能性があります。この記事では、この問題を解決するための各種方法を網羅的に紹介し、実際に役立ったシナリオについても解説します。

1. ポート3389の疎通確認
まず最初に、RDSサーバーのRDPポート3389が接続を受け付けているか、ファイアウォールによってブロックされていないかを確認しましょう。PowerShellから以下のコマンドで確認できます。
Test-NetConnection your_rdp_server –port 3389
2. サーバー側のイベントログを確認
RDSサーバーのRDP接続ログを調査したところ、エラーは見つかりませんでした。「Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational」ログには、RDPセッションが作成されたことが記録されていました。
The server accepted a new TCP connection from client 192.168.1.60:64379.
Connection RDP-Tcp#4 created
しかし、その後、RDPセッションはエラーもなく切断されていました。
The server has terminated main RDP connection with the client.
The disconnect reason is 0

3. リモートデスクトップサービス(TermService)の再起動
リモートサーバー上のリモートデスクトップサービスの状態を確認し、再起動してみましょう。Services.mscコンソールの「別のコンピューターへ接続」機能を使っても確認できますが、PowerShellを使う方が手軽です。
まずサービスの状態を確認します。
(Get-Service TermService -ComputerName ny-rds1).status
サービスが実行中であれば、再起動を実行します。
Get-Service TermService -ComputerName ny-rds1 | Restart-Service –force –verbose

しかし、この方法では今回の問題は解決しませんでした。
4. Webで見つけたその他の解決策
- イベントID 1057への対処:TerminalServices-RemoteConnectionManagerのイベントログに、「RDセッションホストサーバーはSSL接続の認証に使用する新しい自己署名証明書を作成できませんでした」を意味するイベントID 1057が記録されている場合は、C:\ProgramData\Microsoft\Crypto\RSAフォルダ内のMachinekeysフォルダをMachinekeys_bakという名前に変更し、TermServiceを再起動してください。
- H.264/AVCハードウェアエンコードポリシーへの対処:Windows 10 1809では、リモートコンピューター側で「リモートデスクトップ接続用にH.264/AVCハードウェア エンコードを構成する」ポリシーが有効になっていると、本エラーが発生することが確認されています。このポリシーはGPOの「コンピューターの構成 → 管理用テンプレート → Windows コンポーネント → リモート デスクトップ サービス → リモート デスクトップ セッション ホスト → リモート セッション環境」にあります。対策としては、レジストリキー HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\Client に値1を持つDWORD値 fClientDisableUDP を作成してRDPのUDPプロトコルを無効化するだけでOKです。
- 未処理RDP接続数の上限を引き上げる:「接続」ボタンをクリックした直後にエラーが出る場合(接続試行が即座に拒否される場合)は、未処理RDP接続数の上限を増やしてみてください。Windows 10のSKUでは既定値が100、Windows Serverでは3000に設定されています。regedit.exeを実行し、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\ に値10000を持つDWORD値 MaxOutstandingConnections を作成します。この特殊なRDPカウンターは正常とは言い難いRDPログインをカウントしており、指定したMaxOutstandingConnectionsの値に達するとRDPアクセスがブロックされます。
5. 今回のケースでの解決策:クライアント側のRDPキャッシュ削除
上記のいずれの方法も、私のケースには当てはまりませんでした。ふと気づいたのですが、他のコンピューターからは同じRDSサーバーへ何の問題もなく接続できるのです。つまり、問題はリモートデスクトップサーバー側ではなく、クライアントPC側にあるということです。
そこで、レジストリキー HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers 内のRDP接続履歴を消去し、C:\Users\%Username%\AppData\Local\Microsoft\Terminal Server Client\Cache 内のRDPキャッシュをリセットしました(作業前に、実行中のすべてのmstsc.exeセッションを閉じてください)。
del "C:\Users\%Username%\AppData\Local\Microsoft\Terminal Server Client\cache"

その後、コンピューターを再起動すると、RDP接続エラーは完全に消失しました!
-
【解決済み】リモートデスクトップ接続の「認証エラーが発生しました。要求された機能はサポートされていません」を直す方法
Windows 7搭載のパソコンから、リモートデスクトップ接続アプリでWindows Server 2012に接続しようとした際に、「認証エラーが発生しました。要求された機能はサポートされていません」というエラーが表示されることがあります。同じサーバーに対して、Windows 10搭載のPCからは問題なく接続できるのが特徴的な症状です。 この記事では、Windows 10/8/7のリモートデスクトップ接続で発生するこの認証エラーを解決するための手順を詳しく解説します。 リモートデスクトップ接続の「要求された機能はサポートされていません」エラーの修正方法 方法1:RDPサーバー側でネットワーク
-
リモートデスクトップ接続を安全に守るためのセキュリティ対策6選
現在、多くのIT企業がリモートワークへ移行しており、自宅からリモートアクセス接続を使って社内の作業用PCに接続する機会が急増しています。新型コロナウイルスの流行以降、人々は外出自粛を余儀なくされ、オフィスや職場も次々と閉鎖されました。しかし、業務をこれらのサービスに依存している人々は、引き続き自宅から働く必要があります。 こうした状況の中で注意すべきなのは、接続のセキュリティです。実際、サイバー攻撃者はコロナ禍の混乱に乗じて攻撃を活発化させていることが確認されています。リモートデスクトップ接続を確立する際には、PCを保護することがかつてないほど重要になっています。本記事では、リモートデスクトッ