聲明:
此文為翻譯文,原博連接:http://woshub.com/how-to-clear-rdp-connections-history/#h2_3
每次通過RDP成功登陸到遠程計算機,windows客戶端都會將遠程計算機名(或者是ip地址)和用來登陸的賬戶名保存下來。在下一次mstsc啟動的時候,會將之前連接過記錄提供給用戶選擇其中一個進行連接。連接時會自動為你填充之前登陸過的賬戶名。
從用戶的角度來看這是非常方便的,但是從安全角度來看的話,是非常不安全的。尤其是當rdp連接是從公共或不受信任的計算器啟動。
遠程桌面的會話信息分別存放在每個賬戶的配置文件中,即用戶(假設是一個普通賬戶,而不是管理員)不能查看其它用戶的RDP連接歷史。

在這篇文章中,我們了解到windows將遠程桌面連接的歷史記錄存放在哪里,以及如何清除他。
如何從注冊表中刪除RDP連接緩存
所有rdp登錄信息都存儲在每個用戶對應的注冊表中。用windows內置工具去清除一個電腦或者多個電腦的rdp歷史連接記錄列表是不可能的,你必須手動刪除一些注冊表鍵值
1.運行regedit.exe注冊表編輯工具,找到鍵HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client

2.你需要刪除兩個鍵值
- Default :存儲最近10次的rdp登錄
- Server:存儲着所有連接過的rdp的ip地址和登錄賬戶
3.展開包含最近(MRU-Most Recently Used)10次使用的ip地址或DNS名的建
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default,遠程連接的賬戶名(或者ip)都存儲在MRU*這個鍵值。選擇刪除MRU0-MRU9就可以清除掉最近10次的rdp登錄

4.接下來,展開
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers,它包含了所有和這台電腦建立過連接的RDC(遠程桌面客戶端),如果你展開對應節點,你可以看到包含登錄名的UsernameHit的鍵。
5.清除所有RDP連接和保存用戶名的歷史記錄,你必須清除服務器注冊表鍵值里面的內容。因為不能選擇全部進行刪除,所以刪除建Server再手動創建它是更容易。

6.除了刪除指定的注冊表外,你還需要刪除包含默認RDP連接的Default.rdp文件(包含最新的RDP會話信息) Default.rdp文件被設置為隱藏屬性。
注意
次清除方法支持版本:Windows xp Vista,Windows 7,Windows 8 ,Windows 10,服務器平台,比如:Windows server 2003/2008/2012/2016
如何用腳本清除掉RDP連接歷史記錄
上面我們討論了如何通過注冊表去刪除rdp歷史記錄,但是手工操作相對而言很耗時,特別是在電腦很多的情況下。因此,我們提供一個小腳本(bat文件),來自動清除歷史記錄。
想要自動化清除rdp歷史記錄,你可以把這個腳本放在Startup文件夾下或者將創建一個組策略
@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" cd %userprofile%\documents\ attrib Default.rdp -s -h del Default.rdp
注意:
在某些情況下,Dcouments目錄(c:\users\%username%\documents)能夠移動到其他標准目錄,例如:由於系統驅動器空間不足,在另一個分區上。這種情況下,你就需要改變路徑或者手動查找default.rdp
我們來看一下腳本的所有行為
-
禁止將信息輸出傳到控制台
-
刪除 HKCU\Software\Microsoft\Terminal Server Client\Default(清除最近10條rdp)
-
刪除 HKCU\Software\Microsoft\Terminal Server Client\Servers整個目錄(清除rdp連接歷史和保存的用戶名)
-
重新創建Server注冊表
-
進入default.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
注意:
順便說一下,清除RDP歷史記錄的特征可以使用CCCleaner等
如果你想完全禁用遠程桌面的歷史,你可以嘗試阻止每個人寫入這些注冊表。(但是你應該知道這是一個不被支持的配置)
清除緩存的rdp憑據
如果在建立一個新的遠程rdp連接時,輸入密碼之前用戶選擇了允許我保存憑據將會被保存在系統憑據管理器中。下一次 你通過rdp連接這台電腦的時候,rdp客戶端會自動使用之前保存過的密碼來授權給遠程桌面

你可以直接從windows憑據管理器刪除保存的密碼,轉到控制面板→用戶賬戶→管理您的憑據,展開對應的憑據,善后選擇從保管庫中刪除

在域環境中,你可以通過采用特殊的網絡訪問政策來禁止保存rdp密碼:不允許為網絡身份驗證存儲密碼和憑據(詳情可見文章)