·设为首页收藏本站📧邮箱修改🎁免费下载专区📒收藏夹👽聊天室📱AI智能体
返回列表 发布新帖

Windows远程桌面连接清理工具

马上注册,免费下载更多dz插件网资源。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
运行脚本后,您会看到类似以下的输出:

==================================================
Windows远程桌面连接清理工具
==================================================
==================================================
检查最近使用的远程桌面连接记录...
==================================================
找到记录: 104.236.176.123:3389
找到记录: 45.79.28.119:3389

总共找到 2 个最近连接记录

==================================================
检查所有服务器记录...
==================================================
找到服务器: 104.236.176.123
找到服务器: 45.79.28.119

总共找到 2 个服务器记录

==================================================
检查RDP配置文件...
==================================================
找到RDP配置文件: C:\Users\用户名\documents\Default.rdp
文件大小: 2432 字节

==================================================
检查结果汇总
==================================================
最近连接记录数量: 2
服务器记录数量: 2
RDP配置文件: 存在

总共找到 4 条远程桌面连接相关记录

示例记录格式:
最近连接记录示例: 104.236.176.123:3389
服务器记录示例: 104.236.176.123

  1. #!/usr/bin/env python3# -*- coding: utf-8 -*-"""Windows远程桌面连接清理工具功能:1. 检查当前保存的远程桌面连接记录2. 清理所有远程桌面连接历史记录"""import osimport subprocessimport sysfrom typing import List, Dict, Tupleclass RDPCleaner:    """Windows远程桌面连接清理工具"""        def __init__(self):        self.default_reg_path = r"HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default"        self.servers_reg_path = r"HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"        self.rdp_file_path = os.path.join(os.path.expanduser("~"), "documents", "Default.rdp")            def run_command(self, command: str) -> Tuple[int, str, str]:        """执行命令并返回结果"""        try:            # 使用cmd执行命令            result = subprocess.run(                f"cmd /c {command}",                shell=True,                capture_output=True,                text=True,                encoding='gbk',                errors='ignore'            )            return result.returncode, result.stdout, result.stderr        except Exception as e:            return -1, "", str(e)        def check_mru_records(self) -> List[str]:        """检查最近使用的远程桌面连接记录"""        print("=" * 50)        print("检查最近使用的远程桌面连接记录...")        print("=" * 50)                returncode, stdout, stderr = self.run_command(f'reg query "{self.default_reg_path}"')                if returncode != 0:            print("未找到最近连接记录或查询失败")            return []                records = []        lines = stdout.strip().split('\n')                for line in lines:            line = line.strip()            if line.startswith('MRU') and 'REG_SZ' in line:                # 解析记录,格式如:MRU0    REG_SZ    192.168.1.1:3389                parts = line.split('REG_SZ')                if len(parts) > 1:                    record = parts[1].strip()                    records.append(record)                    print(f"找到记录: {record}")                print(f"\n总共找到 {len(records)} 个最近连接记录")        return records        def check_server_records(self) -> List[str]:        """检查所有服务器记录"""        print("\n" + "=" * 50)        print("检查所有服务器记录...")        print("=" * 50)                returncode, stdout, stderr = self.run_command(f'reg query "{self.servers_reg_path}"')                if returncode != 0:            print("未找到服务器记录或查询失败")            return []                servers = []        lines = stdout.strip().split('\n')                for line in lines:            line = line.strip()            if line and not line.startswith('HKEY_') and ':' not in line:                # 解析服务器IP或主机名                server = line.split('\\')[-1]                servers.append(server)                print(f"找到服务器: {server}")                print(f"\n总共找到 {len(servers)} 个服务器记录")        return servers        def check_rdp_file(self) -> bool:        """检查RDP配置文件是否存在"""        print("\n" + "=" * 50)        print("检查RDP配置文件...")        print("=" * 50)                if os.path.exists(self.rdp_file_path):            file_size = os.path.getsize(self.rdp_file_path)            print(f"找到RDP配置文件: {self.rdp_file_path}")            print(f"文件大小: {file_size} 字节")            return True        else:            print("未找到RDP配置文件")            return False        def clean_mru_records(self) -> bool:        """清理最近使用的远程桌面连接记录"""        print("\n" + "=" * 50)        print("清理最近使用的远程桌面连接记录...")        print("=" * 50)                returncode, stdout, stderr = self.run_command(f'reg delete "{self.default_reg_path}" /va /f')                if returncode == 0:            print("成功清理最近连接记录")            return True        else:            print(f"清理最近连接记录失败: {stderr}")            return False        def clean_server_records(self) -> bool:        """清理所有服务器记录"""        print("\n" + "=" * 50)        print("清理所有服务器记录...")        print("=" * 50)                returncode, stdout, stderr = self.run_command(f'reg delete "{self.servers_reg_path}" /f')                if returncode == 0:            print("成功清理服务器记录")            return True        else:            print(f"清理服务器记录失败: {stderr}")            return False        def clean_rdp_file(self) -> bool:        """清理RDP配置文件"""        print("\n" + "=" * 50)        print("清理RDP配置文件...")        print("=" * 50)                if not os.path.exists(self.rdp_file_path):            print("RDP配置文件不存在,无需清理")            return True                try:            # 检查文件是否为隐藏文件            is_hidden = os.stat(self.rdp_file_path).st_file_attributes & 2  # FILE_ATTRIBUTE_HIDDEN                        if is_hidden:                # 删除隐藏文件                returncode, stdout, stderr = self.run_command(f'del /ah "{self.rdp_file_path}"')            else:                # 删除普通文件                os.remove(self.rdp_file_path)                returncode = 0                        if returncode == 0:                print("成功清理RDP配置文件")                return True            else:                print(f"清理RDP配置文件失败: {stderr}")                return False        except Exception as e:            print(f"清理RDP配置文件时出错: {str(e)}")            return False        def verify_cleanup(self) -> Dict[str, bool]:        """验证清理结果"""        print("\n" + "=" * 50)        print("验证清理结果...")        print("=" * 50)                results = {            'mru_cleaned': True,            'servers_cleaned': True,            'rdp_file_cleaned': True        }                # 验证MRU记录        returncode, stdout, stderr = self.run_command(f'reg query "{self.default_reg_path}"')        if returncode == 0:            lines = stdout.strip().split('\n')            for line in lines:                if line.strip().startswith('MRU'):                    results['mru_cleaned'] = False                    print("警告: 仍有MRU记录未清理干净")                    break                # 验证服务器记录        returncode, stdout, stderr = self.run_command(f'reg query "{self.servers_reg_path}"')        if returncode == 0:            results['servers_cleaned'] = False            print("警告: 仍有服务器记录未清理干净")                # 验证RDP文件        if os.path.exists(self.rdp_file_path):            results['rdp_file_cleaned'] = False            print("警告: RDP配置文件仍然存在")                # 显示验证结果        print("\n验证结果:")        print(f"- 最近连接记录: {'已清理' if results['mru_cleaned'] else '未完全清理'}")        print(f"- 服务器记录: {'已清理' if results['servers_cleaned'] else '未完全清理'}")        print(f"- RDP配置文件: {'已清理' if results['rdp_file_cleaned'] else '未完全清理'}")                return results        def run_check_only(self):        """仅执行检查操作"""        print("Windows远程桌面连接检查工具")        print("=" * 50)                mru_records = self.check_mru_records()        server_records = self.check_server_records()        rdp_exists = self.check_rdp_file()                print("\n" + "=" * 50)        print("检查结果汇总")        print("=" * 50)        print(f"最近连接记录数量: {len(mru_records)}")        print(f"服务器记录数量: {len(server_records)}")        print(f"RDP配置文件: {'存在' if rdp_exists else '不存在'}")                total_records = len(mru_records) + len(server_records)        print(f"\n总共找到 {total_records} 条远程桌面连接相关记录")        def run_clean_only(self):        """仅执行清理操作"""        print("Windows远程桌面连接清理工具")        print("=" * 50)                # 执行清理        mru_success = self.clean_mru_records()        servers_success = self.clean_server_records()        rdp_success = self.clean_rdp_file()                # 验证清理结果        results = self.verify_cleanup()                print("\n" + "=" * 50)        print("清理完成")        print("=" * 50)        print("建议重启电脑以确保所有相关缓存完全清除")        print("如需删除保存的登录凭据,请到控制面板 > 凭据管理器中手动删除")        def run_full_process(self):        """执行完整的检查和清理流程"""        print("Windows远程桌面连接清理工具")        print("=" * 50)                # 1. 检查现有记录        mru_records = self.check_mru_records()        server_records = self.check_server_records()        rdp_exists = self.check_rdp_file()                total_records = len(mru_records) + len(server_records)                print("\n" + "=" * 50)        print("检查结果汇总")        print("=" * 50)        print(f"最近连接记录数量: {len(mru_records)}")        print(f"服务器记录数量: {len(server_records)}")        print(f"RDP配置文件: {'存在' if rdp_exists else '不存在'}")        print(f"\n总共找到 {total_records} 条远程桌面连接相关记录")                # 2. 询问是否继续清理        if total_records > 0 or rdp_exists:            print("\n" + "=" * 50)            print("准备清理所有记录")            print("=" * 50)                        # 执行清理            mru_success = self.clean_mru_records()            servers_success = self.clean_server_records()            rdp_success = self.clean_rdp_file()                        # 验证清理结果            results = self.verify_cleanup()                        print("\n" + "=" * 50)            print("清理完成")            print("=" * 50)            print("建议重启电脑以确保所有相关缓存完全清除")            print("如需删除保存的登录凭据,请到控制面板 > 凭据管理器中手动删除")        else:            print("\n未找到需要清理的记录")def main():    """主函数"""    cleaner = RDPCleaner()        if len(sys.argv) > 1:        mode = sys.argv[1].lower()        if mode == "--check":            cleaner.run_check_only()        elif mode == "--clean":            cleaner.run_clean_only()        else:            print("用法:")            print("  python rdp_cleaner.py          # 检查并清理")            print("  python rdp_cleaner.py --check  # 仅检查")            print("  python rdp_cleaner.py --clean  # 仅清理")    else:        cleaner.run_full_process()if __name__ == "__main__":    main()
复制代码
我要说一句 收起回复

评论3

独家记忆Lv.8 发表于 2 小时前 | 查看全部
感谢分享,不过我一般不在别人电脑上登录。
我要说一句 收起回复
回复 支持 反对

使用道具 举报

独家记忆Lv.8 发表于 2 小时前 | 查看全部
这玩意cmd就能写,还需要python吗 有点大材小用了 而且就几行(del /f /q 和 reg delete就行了) 删除注册表和那个RDP配置文件文件就行了,而且压根也不用判断,是否有rdp文件 你都没有你执行删除命令也不会干啥啊。。。
我要说一句 收起回复
回复 支持 反对

使用道具 举报

拾光Lv.8 发表于 2 小时前 | 查看全部
6,这不是方便点,清理了一批过期的服务器
我要说一句 收起回复
回复 支持 反对

使用道具 举报

回复

 懒得打字嘛,点击右侧快捷回复【查看最新发布】   【应用商城享更多资源】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

最新热评 加载中...
AI智能体
投诉/建议联系

discuzaddons@vip.qq.com

未经授权禁止转载,复制和建立镜像,
如有违反,按照公告处理!!!
  • 联系QQ客服
  • 添加微信客服

联系DZ插件网微信客服|最近更新|Archiver|手机版|小黑屋|DZ插件网! ( 鄂ICP备20010621号-1 )|网站地图 知道创宇云防御

您的IP:216.73.216.161,GMT+8, 2025-10-7 17:20 , Processed in 0.285882 second(s), 93 queries , Gzip On, Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2025 Discuz! Team.

关灯 在本版发帖
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表