WindowsでRDP接続履歴をクリアする方法を徹底解説|レジストリ・スクリプト・キャッシュ対策
Windowsに標準搭載されているリモートデスクトップ接続(RDP)クライアント(mstsc.exe)は、リモートコンピューターへの接続が成功するたびに、接続先のコンピューター名(またはIPアドレス)とログインに使用したユーザー名を保存します。次回起動時には、RDPクライアントが過去に使用した接続先の一覧を表示し、リストからRDS/RDPホストを選択するだけで、以前使用したユーザー名が自動的に入力されます。
エンドユーザーにとっては便利な機能ですが、セキュリティの観点からはリスクとなります。特に、公共のPCや信頼できないコンピューターからRDPサーバーに接続する場合は注意が必要です。
すべてのRDP(ターミナル)セッションの情報は、各ユーザーのレジストリハイブに個別に保存されます。つまり、管理者権限を持たないユーザーは、他のユーザーのRDP接続履歴を閲覧することはできません。
本記事では、Windowsがリモートデスクトップ接続の履歴や保存済み資格情報をどこに保管しているのか、mstscウィンドウからエントリを削除する方法、そしてRDPログをクリアする方法について詳しく解説します。
目次
- レジストリからRDP接続キャッシュを削除する方法
- RDP接続履歴をクリアするスクリプト
- WindowsによるRDP接続履歴の保存を防ぐ方法
- リモートデスクトップのビットマップキャッシュをクリアする方法
- 保存されたRDP資格情報のクリア
- リモートホスト上のRDP関連イベントログの削除
レジストリからRDP接続キャッシュを削除する方法
すべてのRDP接続に関する情報は、各ユーザーのレジストリに保存されています。Windowsの標準機能だけでは、RDP接続履歴のリストからコンピューターを削除することはできず、一部のレジストリキーを手動でクリアする必要があります。
- レジストリエディター(
regedit.exe)を起動し、HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client キーへ移動します。 - このセクションには2つの重要なキーがあります。Default(直近10件のRDP接続履歴を保存)とServers(これまでにログインに使用したすべてのRDPサーバーとユーザー名のリストを保持)です。
- HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default を展開すると、最近使用したリモートコンピューターのIPアドレスまたはDNS名が最大10件(MRU – Most Recently Used)記録されています。接続先の名前やIPアドレスは MRU* パラメーターの値として保存されています。最近のRDP接続履歴を消去するには、MRU0〜MRU9 のすべての値を選択し、右クリックから「削除」を実行します。
- 次に HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers を展開します。ここには、そのユーザーがこれまでに接続したすべてのRDP接続のリストが含まれます。任意のホスト名(またはIPアドレス)のキーを開き、UsernameHint の値を確認してください。これはRDP/RDSホストへの接続に使用されたユーザー名を示しており、次回接続時に自動的に利用されます。また、CertHash にはRDPサーバーのSSL証明書のサムプリントが格納されています。
- すべてのRDP接続履歴と保存済みユーザー名を一括で消去するには、Servers キーの内容を空にする必要があります。入れ子になったキーをまとめて選択することはできないため、Servers キー全体を削除してから手動で再作成するのが簡単です。
- 続いて、最新のRDPセッション情報を含む既定の接続ファイル Default.rdp を削除します(「ドキュメント」フォルダー内に存在する隠しファイルです)。
- Windowsはジャンプリストにも最近のリモートデスクトップ接続を記録しています。Windows 10の検索ボックスに
mstscと入力すると、過去に使用したRDP接続が候補として表示されます。レジストリHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced内のDWORD値 Start_TrackDocs を 0 に設定すれば、ジャンプリストへの履歴記録を完全に無効化できます。また、%AppData%\Microsoft\Windows\Recent\AutomaticDestinationsフォルダー内のファイルを削除して、最近使った項目をクリアすることも可能です。
補足: 上記の接続履歴クリア方法は、Windows XPからWindows 10までのすべてのデスクトップ版Windows、およびWindows Serverで有効です。
RDP接続履歴をクリアするスクリプト
前述の通り、手動でのクリア作業(特に複数台のPCを扱う場合)は手間がかかります。そこで、RDP履歴を自動的に消去できるBATファイルのサンプルを紹介します。
このスクリプトをWindowsのスタートアップに配置したり、GPOのログオフスクリプトとして配布することで、クリーンアップを自動化できます。
@echo off
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
reg add "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"
attrib -s -h %userprofile%\documents\Default.rdp
del %userprofile%\documents\Default.rdp
del /f /s /q /a %AppData%\Microsoft\Windows\Recent\AutomaticDestinationsスクリプトの各処理内容は以下の通りです。
- コンソールへの情報出力を無効化
- HKCU\Software\Microsoft\Terminal Server Client\Default の全値を削除(最近のRDP接続リストをクリア)
- HKCU\Software\Microsoft\Terminal Server Client\Servers キー全体を削除(全RDP接続履歴と保存済みユーザー名をクリア)
- 削除したレジストリキーを再作成
- 現在のユーザープロファイル内のDefault.rdpファイルの属性を変更(既定では隠しファイル+システムファイル)
- Default.rdpファイルを削除
- ジャンプリストの最近使った項目からリモートデスクトップ接続のエントリを消去
また、以下のPowerShellスクリプトでも同様にRDP接続履歴をクリアできます。
Get-ChildItem "HKCU:\Software\Microsoft\Terminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0
Remove-Item -Path 'HKCU:\Software\Microsoft\Terminal Server Client\servers' -Recurse 2>&1 | Out-Null
Remove-ItemProperty -Path 'HKCU:\Software\Microsoft\Terminal Server Client\Default' 'MR*' 2>&1 | Out-Null
$docs = [environment]::getfolderpath("mydocuments") + '\Default.rdp'
remove-item $docs -Force 2>&1 | Out-Null補足: CCleanerなど、多くのシステム/レジストリクリーナーツールには、RDP履歴のクリア機能が標準で組み込まれています。
WindowsによるRDP接続履歴の保存を防ぐ方法
そもそもWindowsにRDP接続履歴を保存させたくない場合は、全ユーザーアカウントに対して HKCU\Software\Microsoft\Terminal Server Client キーへの書き込みを拒否します。まず、対象キーのアクセス許可の継承を無効化し(「アクセス許可」→「詳細設定」→「継承の無効化」)、その後ACLを変更してユーザーに「拒否」を設定します(※この構成はマイクロソフト非推奨・サポート外である点にご注意ください)。
こうすることで、mstsc.exeはRDP接続情報をレジストリに書き込めなくなります。
リモートデスクトップのビットマップキャッシュをクリアする方法
リモートデスクトップ接続クライアントには「永続的ビットマップキャッシュ」という機能があります。RDPクライアントは、リモート画面の変化が少ない領域をラスター画像としてキャッシュ保存し、mstsc.exeは前回描画から変化していない部分をローカルドライブのキャッシュから読み込みます。これによりネットワーク上の転送データ量を削減できる仕組みです。
RDPキャッシュは、%LOCALAPPDATA%\Microsoft\Terminal Server Client\Cache フォルダー内に以下の2種類のファイルとして保存されます。
- *.bmc
- *.bin
これらのファイルには、64×64ピクセルのタイル状に分割されたRDP画面の生ビットマップが含まれています。PowerShellやPythonの簡易スクリプト(「RDP Cached Bitmap Extractor」で検索すると入手可能)を使えば、リモートデスクトップ画面の断片をPNG画像として復元でき、機密情報が漏えいする恐れがあります。タイルサイズは小さいものの、キャッシュを解析する者にとって十分有用な情報源になり得ます。
RDPクライアントによる画面キャッシュの保存を防止するには、接続設定の「詳細」タブで「永続的なビットマップのキャッシュ」オプションを無効化します。
なお、キャッシュの破損により以下のようなエラーが表示されることがあります。
Bitmap Disk Cache Failure. Your disk is full or the cache directory is missing or corrupted. Some bitmaps may not appear.
この場合は、RDPキャッシュフォルダーをクリアするか、ビットマップキャッシング機能を無効にしてください。
保存されたRDP資格情報のクリア
新しいRDP接続時にパスワード入力前に「資格情報を記憶する」にチェックを入れると、ユーザー名とパスワードがWindows資格情報マネージャーに保存されます。次回同じコンピューターへ接続する際、RDPクライアントは保存済みパスワードを自動的に使用して認証を行います。
保存済みのRDPパスワードは、mstsc.exeの画面から直接削除できます。接続リストから該当する接続を選択し、「削除」ボタンをクリックして、保存された資格情報の削除を確認します。
別の方法として、Windows資格情報マネージャーから直接削除することも可能です。「コントロールパネル → ユーザーアカウント → 資格情報マネージャー」を開き、「Windows資格情報の管理」を選択します。保存されたパスワード一覧から対象のコンピューター名(TERMSRV/192.168.1.100 形式)を探し、項目を展開して「削除」をクリックします。
Active Directoryドメイン環境では、グループポリシー「ネットワークアクセス:ネットワーク認証用のパスワードと資格情報の保存を許可しない」を適用することで、RDP接続時のパスワード保存自体を無効化できます。
リモートホスト上のRDP関連イベントログの削除
接続ログはRDP/RDSホスト側にも記録されています。イベントビューアーの以下のログから、RDP接続履歴に関する情報を確認できます。
- セキュリティ(Security)
- アプリケーションとサービスログ → Microsoft → Windows → TerminalServices-RemoteConnectionManager → Operational
- TerminalServices-LocalSessionManager → Admin
RDPサーバー上のイベントログは、wevtutilコマンドやPowerShellを使用してクリアできます。
-
Windows 11でキャッシュをクリアする方法を徹底解説|初心者向け6つの手順
キャッシュファイルは、快適なユーザー体験を実現するために欠かせないものです。たとえば、ログインのたびにパスワードを入力しなくて済むのは、キャッシュのおかげです。しかし、RAMやストレージ容量が少ないPCでは、新しいバージョンのWebページがうまく読み込めないなどの不具合が起こることもあります。 PCの動作を改善したいなら、不要になったキャッシュファイルを削除して、ストレージ容量とメモリを解放することが有効です。「Windows 11でキャッシュをクリアするにはどうすればいいのか?」という疑問をお持ちの方に向けて、本記事では実践的な方法をわかりやすく解説します。 Windows 11でのキャッシ
-
PCでWindows Defenderの保護履歴をクリアする方法
お使いのWindowsパソコンには、マイクロソフト製のウイルス対策アプリケーションである「Windows Defender」が標準搭載されており、ウイルスやマルウェアによる脅威や攻撃からPCを守っています。Defenderはスキャンや動作の記録を「保護履歴」として専用フォルダに保存しており、検出された内容やスキャンログは主に30日間保持されます。この保護履歴を削除することで、ストレージ容量を確保でき、Defenderが正常に動作するようになります。 WindowsでMicrosoft Defenderの保護履歴を削除するには? 方法1:ローカルドライブからWindows Defenderの保護