當前位置:
首頁 > 新聞 > 如何清除Windows中的RDP連接歷史記錄

如何清除Windows中的RDP連接歷史記錄

遠程桌面協議(RDP, Remote Desktop Protocol)是一個多通道(multi-channel)的協議,讓用戶(客戶端或稱「本地電腦」)連上提供微軟終端機服務的電腦(伺服器端或稱「遠程電腦」),大部分的Windows都有客戶端所需軟體。

對於每次成功連接後,Windows(mstsc.exe)中的RDP客戶端都會保存遠程計算機名稱或IP地址以及用於登錄的用戶名。這樣在下一次開始連接時,RDP客戶端就會自動提供用戶之前使用的連接過。用戶可以從連接列表中選擇遠程rdp伺服器的名稱,這樣客戶端就會自動填寫用於登錄的用戶名。

從用戶的角度來看,這確實很方便,但從安全形度來看卻是不安全的,特別是當rdp連接發生在公用或不可信的計算機時。

有關遠程桌面(終端)會話的信息會被單獨存儲在每個用戶的配置文件中,即用戶(假設普通用戶而不是管理員)不能查看另一個用戶的RDP連接歷史。

主要內容分為以下3大塊:

1.如何從註冊表中刪除RDP連接緩存;

2.如何使用腳本清除RDP連接歷史記錄;

3.如何清除緩存的RDP憑證;

如何從註冊表中刪除RDP連接緩存

有關所有RDP連接的信息都會被存儲在每個用戶的註冊表中,由於使用內置Windows工具從rdp連接列表中刪除一台或多台計算機是不可能的,你將不得不手動刪除某些註冊表項。

1.運行註冊表編輯器regedit.exe,並進入HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server Client。

2.這時你需要兩個註冊表項,默認表項(存儲最後10個rdp連接的歷史記錄)和伺服器表項(包含先前用於登錄的所有rdp伺服器和用戶名的列表)。

3.將註冊表項HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault進行擴展,其中包含最近使用過(Most recently used即MRU)的遠程rdp伺服器的10個IP地址或DNS名稱列表。遠程桌面伺服器的名稱或IP地址保存在MRU *值中。所以要清除最近的rdp連接的歷史記錄,就要選擇名稱為MRU0-MRU9的所有值,右鍵單擊並選擇刪除。

4.接下來,將HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers進行擴展。該擴展包含所有已經建立的RDC(遠程桌面客戶端)連接的列表。如果使用任何伺服器的名稱或IP地址展開節點,則UsernameHint(提示用戶名)將顯示由rdp連接的用戶的名稱。

5.要清除所有rdp連接和保存的用戶名的歷史記錄,你就必須清除伺服器註冊表項的內容。由於無法一次選擇所有註冊表項,因此最簡單辦法就是刪除整個伺服器註冊表項,然後手動重新創建它。

6.除了指定的註冊表項之外,還需要刪除Default.rdp中存儲的默認rdp連接文件,其中包含有關最新的rdp會話的信息,默認rdp連接文件是位於文檔目錄中的隱藏文件。

注意:上文所述的清除終端rdp連接歷史記錄的方法適用於所有版本的Windows XP,Vista,Windows 7,Windows 8和Windows 10以及Windows Server平台,如Windows Server 2003/2008/2012/2016。

如何使用腳本清除RDP連接歷史記錄

我已經在上文介紹了如何通過註冊表手動清除遠程桌面歷史記錄。但是,手動執行,特別是在多台計算機上執行時非常耗時的。因此,我編寫了一個小腳本(BAT文件),可以讓你輕鬆的自動清除歷史記錄。

可以將以下腳本放入開始連接的時候,這樣就可以自動執行rdp歷史清理,或使用組策略將其部署到計算機中。

@echo off

reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientDefault" /va /f

reg delete "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers" /f

reg add "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers"

cd %userprofile%documents

attrib Default.rdp -s -h

del Default.rdp

注意:在某些情況下,文檔文件夾可以從標準目錄(c:users\%username% Documents)中移動。例如,由於系統驅動器上缺少空間而文檔文件夾存儲在另一個分區上。在這種情況下,你必須更改目錄的路徑或手動查找文件Default.rdp。

以下就是腳本的所有操作,分為7步:

1.禁用向控制台輸出信息;

2.刪除註冊表項HKCUSoftwareMicrosoftTerminal Server ClientDefault中的所有值,即清除最近的rdp連接列表;

3.從HKCUSoftwareMicrosoftTerminal Server ClientServers中刪除整個內容,即清除rdp連接歷史記錄和保存的用戶名;

4.重新創建以前刪除的註冊表項;

5.使用目錄中的Default.rdp文件;

6.更改Default.rdp文件屬性,默認情況下它是隱藏的;

7.刪除Default.rdp文件;

另外,你可以使用以下PowerShell腳本來清除RDP連接的歷史記錄。

Get-ChildItem "HKCU:SoftwareMicrosoftTerminal Server Client" -Recurse | Remove-ItemProperty -Name UsernameHint -Ea 0

Remove-Item -Path "HKCU:SoftwareMicrosoftTerminal Server Clientservers" -Recurse 2>&1 | Out-Null

Remove-ItemProperty -Path "HKCU:SoftwareMicrosoftTerminal Server ClientDefault" "MR*" 2>&1 | Out-Null

$docs = [environment]::getfolderpath("mydocuments") + "Default.rdp"

remove-item $docs -Force 2>&1 | Out-Null

注意:RDP歷史清理的功能會被內置於許多系統和註冊表清理程序中,如CCCleaner等。

清除緩存的RDP憑證

如果在建立新的遠程RDP連接時,在輸入密碼之前,用戶通常都會選中「記住我的用戶名」的選項,然後用戶名和密碼都將保存在系統憑證管理器中。等下次連接到同一台計算機時,RDP客戶端就會自動使用先前保存的密碼,進行遠程桌面上授權。

你可以直接從客戶端的mstsc.exe窗口中刪除此密碼,即從連接列表中選擇相同的連接,然後單擊刪除按鈕,確認保存的憑證被刪除。

或者,你可以直接從Windows Credential Manager中刪除保存的密碼。然後進入控制面板用戶帳戶憑證管理,選擇「管理Windows憑據」,並在保存的密碼列表中找到計算機名稱,格式為TERMSRV/192.168.1.100,最後展開找到的項並單擊刪除按鈕。

在域環境中,你可以使用「禁止存儲網路身份驗證的密碼和憑證」策略來禁用RDP連接的保存密碼。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 嘶吼RoarTalk 的精彩文章:

CVE-2018-0101:CISCO ASA遠程代碼執行和DOS漏洞分析
這個15歲的英國少年黑客玩壞美國FBI,套取多份機密文件……

TAG:嘶吼RoarTalk |