hasoftware/WinTrash

GitHub: hasoftware/WinTrash

一个 PowerShell 编写的 Windows 残留清理工具,支持交互式逐项扫描与清理 18 种应用程序遗留物,并提供备份恢复和历史对比功能。

Stars: 192 | Forks: 26

# WinTrash 工具包 **一个独立的 PowerShell 文件**,可扫描 Windows 上的 18 种应用程序残留,并支持**逐项选择性清理** —— 由你亲自用空格键勾选,绝不自动删除所有内容。 ![扫描 18 种残留](https://static.pigsec.cn/wp-content/uploads/repos/cas/a8/a85309ed509e94a6338728323ca9a6ebb8110a5709064a16f9bac20a196af67d.png) ## 安装与首次运行 ``` .\WinTrash.ps1 ``` 1. 选择**语言**:Tiếng Việt / English / 中文 / Русский 2. 选择**角色**: - **User** — 扫描并清理残留,整理 Downloads - **Developer** — 额外功能:扫描 toolchain 缓存(npm/NuGet/Gradle/pip...),安装 [DevRadar](https://github.com/hasoftware/DevRadar) 和 [Claudefy](https://github.com/hasoftware/Claudefy)(带有进度 spinner) 无需菜单自动运行: ``` .\WinTrash.ps1 -Language vi -Role Developer -Action scan # chỉ quét + báo cáo HTML .\WinTrash.ps1 -Language vi -Role User -Action clean # quét + chọn + dọn ``` ## 交互式清理(核心亮点) 扫描后,所有可清理的项目将以 **checkbox 列表**呈现: ![交互式选择列表](https://static.pigsec.cn/wp-content/uploads/repos/cas/4f/4ff75fc8bc19f35d09745dc414b4a73e10751e8a1e85c919f1f09e6dda45c1c1.png) | 按键 | 功能 | |---|---| | 方向键 / PgUp / PgDn | 移动 | | **Space** | 选择 / 取消选择 | | A / N | 全选 / 全不选 | | **F** | 按严重程度过滤 (All -> High -> Medium -> Info) | | **I** | 永久隐藏此项(写入 `wintrash.ignore.json` —— 后续扫描不再提示) | | **Enter** | 确认(最后会询问 y/N) | | Esc | 取消,不执行任何操作 | 严重程度列颜色标记:**High** 红色 | **Medium** 黄色 | **Info** 蓝色。 **在你按下 Enter 并输入 `y` 之前,任何内容都不会被删除。** 每次清理都会创建 `WinTrashBackups\\` 目录,其中包含:被删除的所有 key/value 的 `.reg` 导出文件、task 的 `.xml` 文件、原始 PATH 以及完整的日志。文件夹和文件则会被移入回收站。 ## 扫描的 18 种残留 | 分类 | Modules | |---|---| | 环境 | 失效的 PATH、失效的环境变量 (JAVA_HOME...) | | 磁盘 | 孤立的 AppData/LocalLow/ProgramData 目录 | | 自启动 | Services, Run-key + Startup folder, Scheduled Tasks | | Registry | “幽灵”项 Add/Remove, App Paths, URL Protocols, Vendor keys | | 界面 | 失效的 Shortcuts (Start Menu/Desktop) | | **安全** | 孤立的 Defender exclusions、代理工具的 root CA (Burp/Fiddler)、IFEO debugger hijack、损坏的 Native Messaging Hosts | | 网络 | 孤立的 Firewall rules | | Container / WSL | 已卸载的 Docker Desktop 残留(数据存储、`docker-desktop*` distro);Lxss 中孤立的 WSL distro、未注册的 `ext4.vhdx` 数据、遗留的 WSL1 目录 | 严重程度:**High** = 客观存在的损坏(目标不存在) | **Medium** = 启发式判断,需要你自行审查 | **Info** = 仅供参考。证书 (Certs) 绝不会被自动删除 —— 仅作为报告,需通过 `certmgr.msc` 手动删除。 每次扫描后均会附带导出 HTML 报告: ![HTML 报告](https://static.pigsec.cn/wp-content/uploads/repos/cas/c4/c494f40a369cfefa5c7550d9f0d049fccece0e2bc4f0ff19661d1b53841ac7ea.png) ## 附加实用功能 - **恢复** (`-Action restore` 或菜单):在 `WinTrashBackups\` 中选择备份版本 -> 自动重新导入 `.reg`,重新注册 scheduled task,恢复 PATH。 - **历史对比**:每次扫描都会将 snapshot 保存到 `ScanHistory\`(保留 12 个版本),并报告 *“相比上次扫描:新增了 N 项,消失了 M 项”* —— 让该工具成为系统健康的监控器。 - **安全清理 Temp** (`-Action temp`):仅删除 User Temp / Windows Temp / CrashDumps 中超过 24 小时的文件,自动跳过被锁定的文件。 - **每月扫描计划** (`-Action schedule`):创建/删除每月 1 日自动运行的 Scheduled Task。 ## 整理 Downloads 仅处理 Downloads **根目录下的散落文件**(绝不触碰子文件夹),将其分类为 Documents/Images/Videos/Installers 等,你可以通过 checkbox **选择要应用的分类**,未明确类型的文件将被保留不动,始终生成 `Undo-Downloads_*.ps1` 脚本以便撤销。 ## Developer 模式 - 检测 15+ 种 toolchain;**已卸载**的 toolchain 缓存(如 Gradle、Cargo... 孤立项)将被加入 checkbox 列表以供清理;**正在使用**的 toolchain 缓存仅显示官方清理命令(`npm cache clean --force`、`dotnet nuget locals all --clear`...)—— 不会自动删除。 - 通过 npm 安装 DevRadar / Claudefy 并带有 spinner,自动检查 Node.js >= 18,保留完整的安装日志。 ## 要求与注意事项 - Windows PowerShell 5.1 或 PowerShell 7+(文件保存为 UTF-8 BOM)。 - 扫描无需 Administrator 权限;部分项目在**清理**时(service、HKLM、PATH Machine、Defender)需要以 admin 身份运行 —— 报错的项目将被标记,提示需要提权重新运行。 - 启发式判断并非完美:Medium 类别中可能包含 portable app —— 勾选前请务必仔细阅读。 - `legacy\` 目录包含旧版本的独立脚本(已合并至 `WinTrash.ps1`)。 ## 许可证 MIT —— 自由使用、修改和分享。
标签:AI合规, Homebrew安装, IPv6, Libemu, PowerShell, 交互式UI, 多模态安全, 系统清理, 跨平台, 运维工具