回归最本质的信息安全

;

如何清除Windows中的RDP连接历史记录

2018年3月5日发布

41,125
0
4

导语:远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”),大部分的Windows都有客户端所需软件。

timg (1).jpg

远程桌面协议(RDP, Remote Desktop Protocol)是一个多通道(multi-channel)的协议,让用户(客户端或称“本地电脑”)连上提供微软终端机服务的电脑(服务器端或称“远程电脑”),大部分的Windows都有客户端所需软件。

对于每次成功连接后,Windows(mstsc.exe)中的RDP客户端都会保存远程计算机名称或IP地址以及用于登录的用户名。这样在下一次开始连接时,RDP客户端就会自动提供用户之前使用的连接过。用户可以从连接列表中选择远程rdp服务器的名称,这样客户端就会自动填写用于登录的用户名。

从用户的角度来看,这确实很方便,但从安全角度来看却是不安全的,特别是当rdp连接发生在公用或不可信的计算机时。

有关远程桌面(终端)会话的信息会被单独存储在每个用户的配置文件中,即用户(假设普通用户而不是管理员)不能查看另一个用户的RDP连接历史。

1.jpg

主要内容分为以下3大块:

1.如何从注册表中删除RDP连接缓存;

2.如何使用脚本清除RDP连接历史记录;

3.如何清除缓存的RDP凭证;

如何从注册表中删除RDP连接缓存

有关所有RDP连接的信息都会被存储在每个用户的注册表中,由于使用内置Windows工具从rdp连接列表中删除一台或多台计算机是不可能的,你将不得不手动删除某些注册表项。

1.运行注册表编辑器regedit.exe,并进入HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client。

2.jpg

2.这时你需要两个注册表项,默认表项(存储最后10个rdp连接的历史记录)和服务器表项(包含先前用于登录的所有rdp服务器和用户名的列表)。

3.将注册表项HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default进行扩展,其中包含最近使用过(Most recently used即MRU)的远程rdp服务器的10个IP地址或DNS名称列表。远程桌面服务器的名称或IP地址保存在MRU *值中。所以要清除最近的rdp连接的历史记录,就要选择名称为MRU0-MRU9的所有值,右键单击并选择删除。

3.jpg

4.接下来,将HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers进行扩展。该扩展包含所有已经建立的RDC(远程桌面客户端)连接的列表。如果使用任何服务器的名称或IP地址展开节点,则UsernameHint(提示用户名)将显示由rdp连接的用户的名称。

5.要清除所有rdp连接和保存的用户名的历史记录,你就必须清除服务器注册表项的内容。由于无法一次选择所有注册表项,因此最简单办法就是删除整个服务器注册表项,然后手动重新创建它。

4.jpg

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_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

注意:在某些情况下,文档文件夹可以从标准目录(c:\users\%username%\ Documents)中移动。例如,由于系统驱动器上缺少空间而文档文件夹存储在另一个分区上。在这种情况下,你必须更改目录的路径或手动查找文件Default.rdp。

以下就是脚本的所有操作,分为7步:

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

2.删除注册表项HKCU\Software\Microsoft\Terminal Server Client\Default中的所有值,即清除最近的rdp连接列表;

3.从HKCU\Software\Microsoft\Terminal Server Client\Servers中删除整个内容,即清除rdp连接历史记录和保存的用户名;

4.重新创建以前删除的注册表项;

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

6.更改Default.rdp文件属性,默认情况下它是隐藏的;

7.删除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客户端就会自动使用先前保存的密码,进行远程桌面上授权。

7.jpg

你可以直接从客户端的mstsc.exe窗口中删除此密码,即从连接列表中选择相同的连接,然后单击删除按钮,确认保存的凭证被删除。

8.jpg

或者,你可以直接从Windows Credential Manager中删除保存的密码。然后进入控制面板\用户帐户\凭证管理,选择“管理Windows凭据”,并在保存的密码列表中找到计算机名称,格式为TERMSRV/192.168.1.100,最后展开找到的项并单击删除按钮。

9.jpg

在域环境中,你可以使用“禁止存储网络身份验证的密码和凭证”策略来禁用RDP连接的保存密码。

本文翻译自:http://woshub.com/how-to-clear-rdp-connections-history/ ,如若转载,请注明原文地址: http://www.4hou.com/web/10567.html

点赞 4
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

luochicun

这个人很懒,什么也没留下

发私信

发表评论