Windows 11からWindows 11をリモートデスクトップ接続でモヤっとした画面表示になったままどうすることもできない事象が発生している。これに対する対処を検討する。
以前にも「リモートデスクトップのキーボード配置が変わった」問題 があった。リモートデスクトップに関する問題は、数多くのバージョンの組み合わせで使われるので難易度が高い問題でもあるだろう。同じパターンで解決した人がいればコメントください。
いろいろ試して、これかという設定を見つけて対処してみたが今のところ効いていない。今時点で、まだ解決していないが、解決まで話が長くなりそうなのでいったん公開しておきます。
まずは、今の症状・現状分析から書いていこう。
1.問題の症状 このようなモヤっとした画面である。可能な操作は次の通り。 ・ウィンドウの最小化、最大化、ピン止め、など ・接続情報 も見える
おや、Client detailsに想定外の「Windows 10」の文字が。。。。 なぜ? これが原因では? ということで、調べてみた。
接続先のWindowsは?
接続元は?
どっちもWindows 11なのに、なぜかリモートデスクトップはWindows 10 これは怪しい。
※ただ、Windows 10のリモートデスクトップに接続したときは、モヤッとならない。 また、その際の接続情報も上と同じ表示でWindows 10。 なので、接続情報がWindows 10であることが直接の原因ということはない。 組み合わせかもしれないが。。
「リモートデスクトップのWindows 11に接続して少し時間がたつとモヤっとなり、接続情報を見るとちゃんと接続しているが、なにも操作できなくなる。ウィンドウを閉じて再接続すると操作はできる。 ウィンドウを閉じて再接続しなくても、操作をできるようにする方法を解説してください。 原因を調べる方法があれば教えてください。」と今噂?のGemini3.0Proに聞いてみた。以下、背景が灰色の部分はGeminiの回答で、赤文字は私のコメントです。
リモートデスクトップ(RDP)接続中に「画面がモヤっとして(画質が低下して)操作不能になる」現象、非常にストレスが溜まりますよね。
この症状の典型的な原因は、RDPが使用している通信プロトコル(UDP)の不調 や、描画キャッシュの不整合 であることが多いです。「接続情報は繋がっている」のに操作できないのは、通信経路の一部(特に画面転送を行うUDP)だけが詰まっている状態と考えられます。
以下に、再接続せずに復帰を試みる方法(対処療法)と、そもそもこの現象が起きないようにする設定(根本治療) 、および原因の調査方法を解説します。
1. 再接続せずに操作可能にする方法(対処療法)画面が固まった際、マウス操作は効かなくてもキーボードショートカットがサーバーに届けば、画面の再描画(リフレッシュ)が走り、操作可能になることがあります。 以下のショートカットを順番に試してみてください。
**Ctrl + Alt + End**: → 効果ありませんでした リモート先で Ctrl + Alt + Del を押したことになります。セキュリティ画面に切り替わることで画面が強制的に再描画され、フリーズが解けることがあります。 **Ctrl + Alt + Break** (または Fn + Break / Pause): → ウィンドウが「全画面表示」と「ウィンドウ表示」が切り替わるだけで操作は復旧せず リモートデスクトップの「全画面表示」と「ウィンドウ表示」を切り替えます。ウィンドウサイズが変わることで画面情報がリセットされ、復帰することがあります。 ※注意: これらで反応がない場合は、通信セッション自体が「ゾンビ状態(切断されているのに認識されていない)」になっているため、残念ながらウィンドウを閉じて再接続するしかありません。
2. 現象を二度と起こさないための設定(根本治療)「モヤっとなる」のは、回線速度に合わせて画質を落とそうとする機能が働いた直後に、通信が詰まっている可能性が高いです。これを防ぐには、「UDP通信を無効化してTCPのみにする」 のが最も効果的です。 方法A:ホスト側(接続される Windows 11)の設定変更これが最も確実です。グループポリシーエディタを使用します(Pro版以上)。 Windowsキー + R を押し、gpedit.msc と入力してEnter。左側のツリーで以下へ進みます。コンピューターの構成 > 管理用テンプレート > Windows コンポーネント > リモート デスクトップ サービス > リモート デスクトップ セッション ホスト > 接続 「RDP トランスポート プロトコルの選択」 をダブルクリックします。「有効」を選択し、オプションで 「TCP のみを使用」 を選択してOKを押します。 PCを再起動します。 →行けそうな気がしたが残念ながら、 効果なし
※ Windows 11 Home版の場合 は、レジストリ操作が必要です。
regedit を起動。HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services へ移動。右クリック > 新規 > DWORD(32ビット)値を作成。名前を fClientDisableUDP にする。 値を 1 に設定して再起動。 方法B:クライアント側(操作する手元のPC)の設定変更手元のPCの設定で緩和できる場合もあります。 リモートデスクトップ接続アプリを起動し、「オプションの表示」を開く。 「エクスペリエンス」 タブへ移動。「ビットマップのキャッシュを保持する」のチェックを外す。 キャッシュファイルが壊れて画面がおかしくなるのを防ぎます。 「接続速度の自動検出」 ではなく、「LAN(10Mbps以上)」などに固定してみる。3. 原因を調べる方法なぜ切れるのか、ログを確認して特定する方法です。 イベントビューアーでログを確認するWindowsにはRDP関連の詳細なログが記録されています。 接続される側(Windows 11)または手元のPCで、スタートボタンを右クリック > 「イベント ビューアー」 を選択。 以下のパスを開きます。アプリケーションとサービス ログ > Microsoft > Windows > TerminalServices-LocalSessionManager > Operational → モヤっとなった瞬間のログはない 。 接続情報で、”接続品質が良好”ということとずれはない。 接続はされているが、何らかの制限がかかっているような気がする。 ↓。 ここで追加調査したら、情報が見つかった。 : 「追加情報2」へ
より詳細なエラー理由は以下を確認します。アプリケーションとサービス ログ > Microsoft > Windows > TerminalServices-ClientActiveXCore > Microsoft-Windows-TerminalServices-RDPClient/Operational お
ここで「警告」 や「エラー」 になっている項目のIDやメッセージ(例:ID 1026 ネットワーク接続が失われました 等)を確認します。 ここにでてますね 「マルチトランスポート接続が切断されました。」 「RDP ClientActiveX が切断しました (理由 = 1)」
パケットロスを確認する接続中にコマンドプロンプトを開き、以下のコマンドを打ちっぱなしにしておきます。 ping -t [接続先IPアドレス]
画面が「モヤっと」して操作不能になった瞬間、pingも Request timed out になっていれば、PCの問題ではなくネットワーク機器(ルーターやWi-Fi)の瞬断が原因です。
まとめ:まず試していただきたいことまずは、「UDP通信の無効化(TCP固定)」 を行ってみてください。 「モヤっとなる(画質低下)」現象は、UDP通信特有の症状であることが多いため、TCPに固定することで画質の変動はなくなり、通信の安定性が向上する可能性が非常に高いです。
レジストリやポリシーの設定変更について、より詳細な手順のサポートが必要ですか?
すでに有線LAN接続をしている。 ただ、モヤっとしないほうに比べて距離が遠い
あいだに ルータはない。 スイッチングハブのみ 。 とここで、次の情報を発見追加情報2 更新プログラムの適用
Windows Updateで最新の累積更新を適用(2025年3月以降の更新でRDP関連の不具合が修正済み) 接続先PC側 と 接続元と、 どちらのアップデートで、 効果がありますか? と、 Copilotは、いかのようにどっちも言う回答 。
更新の影響範囲 接続元PC(クライアント側) RDPクライアント( や ActiveXコンポーネント)の不具合修正は 接続元側の更新 で効果が出ます。 特に「マルチトランスポート(UDP/TCP併用)」関連の修正はクライアント側に依存するため、接続元を最新にすることが重要です。 接続先PC(サーバー側) RDPサービス()やグラフィック描画、セッション管理の修正は 接続先側の更新 で効果があります。 サーバー側が古いと、クライアントが最新でも描画が乱れたり切断が発生することがあります。 ✅ 実際の対策 両方のPCを最新にするのがベスト クライアント側だけ更新しても改善するケースはありますが、サーバー側が古いと再発しやすいです。 パッチ情報を確認 ✅ 確認方法のステップ
Windows Updateの更新履歴を確認 「設定」 → 「Windows Update」 → 「更新履歴」を開く インストール済み更新プログラムの一覧から KB5053656(2025年3月27日公開) または KB5053598(2025年3月定例更新) があるか確認 これらが表示されていれば、リモートデスクトップの「モヤ」問題は修正済みです。
→ クライアント側は KB5053598 は 2025/3/18に正しくインストールされている 。ので、これではないようだ。 おや、接続される側にはない? このマシンは2025/2/19~2025/4/11まで起動しなかったのでパッチ適用されず解消されていないのかもしれない。 接続される側(ホスト)に適用する必要があるようだ。手動適用するにはMicrosoft Update Catalog にアクセスして、「KB5053656」または「KB5053598」で検索すればよいようだ。 → パッチ適用を試みたら「適用できない」、と言ってきた。 「Windows 11, version 25H2」なので適用不要のようだ。 じゃあなに?
累積更新の世代違い 3月の KB5053598 は既に古く、25H2 では 4月以降の累積更新 (例: KB5055523, KB5067036) が必要です。 →なにそれ、「最新の状態です」と出ているのに… Microsoft Update Catalog からKB5067036を検索して、 2025 年 10 月の累積更新プログラムのプレビュー (Windows 11, version 25H2、x64 ベースのシステム向け) (KB5067036) (26200.7019) を選択し適用を試みる ダウンロードして、実行、え! スタンドアロンインストーラ 「インストーラーはエラーを検出しました 0xc1900401」、うう、このエラーコードはSTATUS_INVALID_IMAGE_HASH に関連する更新エラーで、 「インストーラーが対象のOSビルドや署名を正しく認識できず、更新パッケージを適用できない」ということらしい。 で、
KB5067036 の内容は 11月の累積更新 KB5068861 に統合されています。 つまり、KB5067036 を適用できなくても、KB5068861 を適用済みであれば同じ修正が反映されています。
なんと、 現在は 26200.7462 なので、すでに適用済みだと..? それでもやっぱり、モヤっと事象は発生する。
OSビルド番号を確認 → 「winver」と入力 表示されたビルド番号を確認 修正済みの目安: KB5052093 適用後 → 26100.3323 以上 KB5053656 適用後 → さらに安定版(2025年3月末以降) コマンドラインで確認(管理者向け) PowerShellで以下を実行: 出力に KB5053656 や KB5053598 が含まれていれば適用済み。 📌 補足情報
問題の原因は2025年1月~2月の更新(KB5050094, KB5051987)で発生した既知の不具合。 Microsoftは 2025年3月以降の累積更新(KB5053598, KB5053656, KB5055523など)で修正済み。 企業環境でWSUSやWUfBを利用している場合は、3月以降の累積更新を承認していれば同じ効果が得られます。 👉 まとめると、「更新履歴」でKB番号を確認するか、「winver」でビルド番号が26100.3323以上になっているか」を見れば、パッチ適用済みかどうか判断できます。
仕切り直し ここまでの結果、AIでは? AIでもそう簡単に解決できる問題ではないことが判明した。再度、論理的に考え直してみよう。 関連するパッチは、すべて適用できていることになっている。ただし、2か月間ほどPCを起動できていなかった期間に配信されたパッチは適用されず、その後配信された累積パッチで、問題の修正を含むパッチが適用されたことになる。しかし、それでも修正が反映されていないように見える。ここから考えられるパターンは、実装レベルの修正は反映されたが、設定での変更が最初にパッチが配布されたときにだけ配布され、その後配信されていないパターンである。 なんか、「リモートデスクトップのキーボード配置が変わった」 件とすごく似ている感じがします。あのときは、レジストリ設定をいろいろ変更しました。
それから、挙動から、グラフィック処理周りの設定が怪しそうです。接続情報で「接続品質が良好」なのに操作不能になるのは、通信ではなくグラフィックレンダリング層での問題 である可能性が高いと推測されます。
関連する設定の確認と変更検討 # 1. グラフィック処理の最適化を無効化 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fEnableVirtualizedGraphics /t REG_DWORD /d 0 /f ※この設定がない # 2. RemoteFXを完全無効化 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fEnableRemoteFXAdvancedRemoteApp /t REG_DWORD /d 0 /f ※この設定がない # 3. ビットマップキャッシュの無効化(サーバー側) reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fDisableCam /t REG_DWORD /d 1 /f ※ 0 がセットされていた # 4. グラフィック出力のハードウェアアクセラレーション無効化 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fDisableVideoCompressionMode /t REG_DWORD /d 1 /f ※ この設定がない # 5. セッション制限時間の延長(ミリ秒単位) reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MaxIdleTime /t REG_DWORD /d 0 /f ※ ★これは設定済み reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v MaxConnectionTime /t REG_DWORD /d 0 /f ※ ★これは設定済み # 再起動 Restart-Computer 管理者権限のターミナルで上の設定を実施、レジストリエディタで更新されていることを確認して、再起動した。 とりあえずこれで様子見だったが、 すぐに発生した。
# 1. 接続先PCのGPUドライバー情報確認 Get-WmiObject Win32_VideoController | Select-Object Name, DriverVersion, DriverDate # 2. RDP使用時のGPU負荷監視 # タスクマネージャーのパフォーマンスタブでGPUエンジンを監視しながら接続 # 3. ドライバーの互換性テスト # ディスプレイアダプターの設定で「リモートデスクトップ用にこのデバイスを使用する」のチェック確認 # 接続先PC(25H2)で以下を確認 winver # ビルド番号が26200.xxxx台であることを再確認 # Windows Insider Program加入の有無確認 Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\WindowsSelfHost\Applicability" -ErrorAction SilentlyContinue # 25H2用の修正パッチ検索 Get-HotFix | Where-Object {$_.InstalledOn -gt (Get-Date).AddMonths(-2)} | Format-Table HotFixID, Description, InstalledOn d: PS D:> Get-WmiObject Win32_VideoController | Select-Object Name, DriverVersion, DriverDate
Name DriverVersion DriverDate —- ————- ———- NVIDIA GeForce RTX 3080 32.0.15.6094 20240814000000.000000-000 Microsoft Remote Display Adapter 10.0.26100.7309 20060621000000.000000-000
PS D:> winver PS D:> Get-ItemProperty “HKLM:\SOFTWARE\Microsoft\WindowsSelfHost\Applicability” -ErrorAction SilentlyContinue
WNSUriRegName : {85, 248, 12, 164…} UseSettingsExperience : 0 PSPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost\Appli cability PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsSelfHost PSChildName : Applicability PSDrive : HKLM PSProvider : Microsoft.PowerShell.Core\Registry
PS D:> Get-HotFix | Where-Object {$_.InstalledOn -gt (Get-Date).AddMonths(-2)} |
Format-Table HotFixID, Description, InstalledOn
HotFixID Description InstalledOn ——– ———– ———– KB5067931 Update 2025/12/13 0:00:00 KB5054156 Update 2025/12/03 0:00:00 KB5072033 Security Update 2025/12/10 0:00:00 KB5071142 Update 2025/12/10 0:00:00
-. NVIDIA RTX 3080のドライバーが古い ?
DriverVersion: 32.0.15.6094 (2024年8月14日) nvidia-smiの出力から
Driver Version: 560.94 (最新版)実はドライバーは既に最新 次の対策手順
対策1: GPUハードウェアアクセラレーションの無効化(最優先)
接続先PCで実行:
# 1. RDP専用のGPU制御設定 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v AVCHardwareEncodePreferred /t REG_DWORD /d 0 /f # 2. RemoteFX vGPUの完全無効化 reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v fEnableVirtualizedGraphics /t REG_DWORD /d 0 /f # 3. ハードウェアアクセラレーション全体の無効化 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fDisableVideoCompressionMode /t REG_DWORD /d 1 /f # 4. ビットマップキャッシュのサーバー側無効化 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v fDisableCam /t REG_DWORD /d 1 /f # 5. WDDM(Windows Display Driver Model)グラフィックスドライバーの制御 reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v bEnumerateHWBeforeSW /t REG_DWORD /d 0 /f # 再起動 Restart-Computer ほぼ設定済みだが
# 1. GPU制御の無効化(最重要) reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v AVCHardwareEncodePreferred /t REG_DWORD /d 0 /f # 2. WDDM制御(ハードウェアGPU優先を無効化) reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v bEnumerateHWBeforeSW /t REG_DWORD /d 0 /f Write-Host "`n設定完了。再起動が必要です。" -ForegroundColor Yellow Write-Host "再起動コマンド: Restart-Computer" -ForegroundColor Cyan 上の設定をしたがだめ、 で、「接続品質は良好です」が気になります。そもそも何か間違えているのでは?という気になってきた。 右下の電源アイコンをクリックすると反応する。 「スリープ」させるとスリープした。
# Desktop Window Manager (DWM) のログを有効化 wevtutil sl Microsoft-Windows-Dwm-Core/Diagnostic /e:true /l:5 # グラフィックドライバーのログも有効化 wevtutil sl Microsoft-Windows-Display/Operational /e:true # RDPのグラフィックチャネル詳細ログ wevtutil sl Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Debug /e:true /l:5 Write-Host "詳細ログを有効化しました。モヤっと現象を再現してください。" -ForegroundColor Yellow # Desktop Window Manager (DWM) のログを有効化 wevtutil sl Microsoft-Windows-Dwm-Core/Diagnostic /e:true /l:5 # グラフィックドライバーのログも有効化 wevtutil sl Microsoft-Windows-Display/Operational /e:true # RDPのグラフィックチャネル詳細ログ wevtutil sl Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Debug /e:true /l:5 Write-Host "詳細ログを有効化しました。モヤっと現象を再現してください。" -ForegroundColor Yellow $logTime = (Get-Date).AddMinutes(-5) $outputDir = "C:\RDP_Debug_$(Get-Date -Format 'yyyyMMdd_HHmmss')" New-Item -ItemType Directory -Path $outputDir -Force # 1. DWM(デスクトップ描画)のエラー Get-WinEvent -LogName "Microsoft-Windows-Dwm-Core/Diagnostic" -MaxEvents 100 | Where-Object {$_.TimeCreated -gt $logTime} | Format-List TimeCreated, Id, LevelDisplayName, Message | Out-File "$outputDir\dwm_diagnostic.txt" # 2. RDPコアのグラフィック処理エラー Get-WinEvent -LogName "Microsoft-Windows-RemoteDesktopServices-RdpCoreTS/Operational" -MaxEvents 100 | Where-Object {$_.TimeCreated -gt $logTime -and $_.Message -match "graphics|video|display|render"} | Format-List TimeCreated, Id, LevelDisplayName, Message | Out-File "$outputDir\rdp_graphics.txt" # 3. ディスプレイドライバーのエラー Get-WinEvent -LogName "System" -MaxEvents 200 | Where-Object {$_.TimeCreated -gt $logTime -and $_.ProviderName -match "nvlddmkm|Display"} | Format-List TimeCreated, Id, LevelDisplayName, Message | Out-File "$outputDir\display_driver.txt" # 4. 「理由=1」の前後詳細 Get-WinEvent -LogName "Microsoft-Windows-TerminalServices-RDPClient/Operational" -MaxEvents 50 | Where-Object {$_.TimeCreated -gt $logTime} | Format-List TimeCreated, Id, LevelDisplayName, Message | Out-File "$outputDir\rdp_client_detail.txt" Write-Host "ログを $outputDir に保存しました" -ForegroundColor Green ———————– 対策1: ネットワークアダプタの省電力を無効化 # 接続先PCで実行 Write-Host "=== ネットワークアダプタの省電力設定確認 ===" -ForegroundColor Cyan # すべてのネットワークアダプタを取得 $adapters = Get-NetAdapter | Where-Object {$_.Status -eq "Up"} foreach ($adapter in $adapters) { Write-Host "`n[$($adapter.Name)]" -ForegroundColor Yellow # デバイスマネージャーのプロパティを取得 $device = Get-PnpDevice | Where-Object {$_.FriendlyName -like "*$($adapter.InterfaceDescription)*"} if ($device) { # 省電力設定を確認 $powerMgmt = Get-CimInstance -ClassName MSPower_DeviceEnable -Namespace root/wmi | Where-Object {$_.InstanceName -like "*$($device.InstanceId)*"} if ($powerMgmt) { Write-Host " 省電力有効: $($powerMgmt.Enable)" } } } # GUIで設定する場合の手順を表示 Write-Host "`n=== 手動設定の手順 ===" -ForegroundColor Green Write-Host "1. デバイスマネージャーを開く" Write-Host "2. ネットワークアダプターを展開" Write-Host "3. 使用中のアダプターを右クリック → プロパティ" Write-Host "4. 電源の管理タブ" Write-Host "5. 以下のチェックを外す:" Write-Host " □ 電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする" 次を実施 1. デバイスマネージャーを開く 2. ネットワークアダプターを展開 3. 使用中のアダプターを右クリック → プロパティ 4. 電源の管理タブ 5. 以下のチェックを外す: □ 電力の節約のために、コンピューターでこのデバイスの電源をオフにできるようにする
とりあえず、これで様子見です