Windows 精简(Debloat)
此技能将杂乱的个人 Windows PC 转变为轻量机器,同时保留用户关心的所有内容。大多数此类请求模糊且情绪化(“删除所有不好的东西,删掉我们不需要的一切”)。你的工作是将它们转化为用户批准的具体清单,并可靠地执行,然后验证结果。
有两条硬性规则:在文件副本存在于其他地方之前,绝不会在本机上销毁个人文件。在用户看到清单之前,不会卸载或删除任何内容。
工作流程
1. 扫描(只读)
运行捆绑的扫描脚本;它不会更改任何内容:
powershell -NoProfile -ExecutionPolicy Bypass -File <skill-dir>/scripts/survey.ps1
该脚本报告磁盘、RAM 和 CPU 信息,是否为管理员账户,用户文件夹大小(包括最大的桌面/文档/下载项目),临时文件和更新缓存大小,启动条目,已安装的 Win32 应用程序及其大小,Store 应用,以及内存占用最高的进程。阅读报告,并将结果整理到 references/bloat-catalog.md 中的组别中。
2. 一次性询问,分组进行
如果你有工具,使用多项选择问题工具,用通俗语言询问,并附上大小和内存数字,以便用户了解每个项目的重要性。涵盖以下内容,并为每项推荐一个默认操作:
- 个人文件。 将其移动到一个归档文件夹
C:\Archive\<YYYY-MM-DD>\(默认:立即在同一驱动器上,不会丢失任何内容),压缩它们,或归档后等用户将归档副本复制出机器后再删除。 - 应用组。 大型第三方臃肿软件;Windows/OEM 臃肿软件;个人应用(聊天、游戏、模拟器、虚拟机);开发工具。对于服务器或代理机器,默认保留开发工具,因为代理主机需要 Git、Node、Python、编辑器及 JDK。仅当用户明确要求时才删除。
- 启动项。 禁用所有非必要项,或保留云同步如 OneDrive。
如果用户要求“使用最大代理 / 蜂群”,简要说明 Windows 安装程序会互相锁定(MSI 错误 1618),因此卸载必须逐一运行。只有只读扫描可以拆分执行。
3. 归档个人文件
使用 Move-Item 在同一卷内操作。这是一个重命名操作:即时完成,文件保持完整。保留 .lnk 快捷方式和 desktop.ini 文件。报告移动和失败的项目数量。将归档保留在机器上,除非用户确认副本已存在于其他地方(USB、云)。只有在那时,才提供删除选项,并先确认,因为删除不可撤销。
4. 清理垃圾,不损害自身
- 在
%TEMP%中,只删除早于 1 天的项目,并跳过任何位于claude文件夹下或你自己的暂存区的内容。清空整个%TEMP%可能会删除代理自己的工作文件,包括你即将运行的脚本。 C:\Windows\Temp和C:\Windows\SoftwareDistribution\Download需要管理员权限,因此将其放在提权批处理步骤(步骤 6)中。- 只有在用户同意时才清空回收站。
5. 优化启动项,带备份
在删除任何 Run 键值之前,将 名称 = 命令 行写入 <archive>\startup-backup.txt,以便用户可以恢复他们怀念的条目。HKCU 的 Run 条目无需管理员权限即可操作;HKLM 的 Run 条目放入提权批处理中。切勿触及 SecurityHealth(Windows 安全)或音频和显示驱动程序条目。
6. 卸载
按以下顺序执行:
-
Store 应用(无需管理员权限): 为每个应用运行
Remove-AppxPackage。错误0x80073CFA表示该应用受系统保护:报告错误并继续。 -
按用户安装的 Win32 应用(无需管理员权限): 注册在
HKCU下的应用(Discord、按用户安装的 Electron 应用)。先终止其进程,然后运行它们的QuietUninstallString。 -
机器级应用(需要管理员权限): 使用
scripts/elevated-uninstall.ps1脚本。它接受应用名称模式,从注册表中解析每个卸载命令,写入一个提权脚本并启动它,因此用户只需批准一个 UAC 提示,而不是十个。它会记录每一步并等待结果:powershell -NoProfile -ExecutionPolicy Bypass -File <skill-dir>/scripts/elevated-uninstall.ps1 ` -Patterns 'BlueStacks,WebAdvisor,Duet Display' -RemoveHklmRun 'Opera Browser Assistant' ` -WorkDir 'C:\Archive\2026-11-08' -CleanSystemTemp模式是以逗号分隔的正则表达式,与应用的显示名称匹配。请确保具体化:
Microsoft 365会匹配 Office 本身。先使用
-DryRun运行,以显示解析出的命令而不实际执行任何操作。该脚本已处理:- MSI 应用:
msiexec /x {GUID} /qn /norestart,当UninstallString为空时使用注册表键名(VMware Player 没有卸载字符串)。 - 退出代码 1618(另一个安装程序正在运行):短暂等待后重试。
- Office 点击即用(Project、Visio):ARP 命令加上
DisplayLevel=False。 - Inno Setup(
unins000.exe):/VERYSILENT /NORESTART。 - 没有静默模式的卸载程序(McAfee、Zotero、BlueStacks):以交互方式运行。在启动之前,告知用户批准 UAC 提示并点击这些窗口。
- MSI 应用:
-
之后重新查询注册表。任何剩余内容将进行一次针对性的重试。如实报告其余内容。
7. 服务器设置(由用户运行)
电源、睡眠、盖子操作和服务设置是系统设置。将它们作为命令提供给用户,每个代码块一条,在管理员 PowerShell 中运行,并解释每条命令的作用:
powercfg /change standby-timeout-ac 0
powercfg /change hibernate-timeout-ac 0
powercfg /setacvalueindex SCHEME_CURRENT SUB_BUTTONS LIDACTION 0
powercfg /setactive SCHEME_CURRENT
可选,也由用户决定:在大清理之前创建还原点,设置 Windows 更新活跃时段,设置自动登录或“登录后重启应用”以实现无人值守使用,以及插入电源时选择平衡或高性能电源计划。
8. 验证与报告
测量清理前后的可用空间,并重新检查应用和启动项列表。然后报告:
- 已完成: 归档位置及项目数量,已卸载的应用,已禁用的启动项,释放的空间(之前 → 之后)。
- 特意保留: 开发工具、浏览器、Office、安全软件、驱动程序、运行时。
- 留给用户: 重启 PC、服务器设置、将归档复制出机器。
切勿删除
Defender / Microsoft.SecHealthUI;驱动程序及音频、显示和触摸板的 OEM 驱动程序服务;Microsoft.WindowsStore;Microsoft.DesktopAppInstaller (winget);Windows 终端;VC++ 可再发行组件、.NET 及其他框架 (IsFramework);Microsoft.XboxIdentityProvider(其他应用依赖它);用户的安全工具(例如 Malwarebytes);用户当前使用的浏览器;代理自身运行的任何内容。