聲明:
此文爲翻譯文,原博鏈接: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
咱們來看一下腳本的全部行爲
此外,你還能夠用一下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密碼:不容許爲網絡身份驗證存儲密碼和憑據(詳情可見文章)