Win11Debloat:一个 PowerShell 脚本如何替你把 Windows 系统的"出厂包袱"一件件拿掉
【免费下载链接】Win11DebloatA simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and customize your Windows experience. Win11Debloat works for both Windows 10 and Windows 11.项目地址: https://gitcode.com/GitHub_Trending/wi/Win11Debloat
收到一位朋友的求助:他的笔记本刚买半年,开机要一分多钟,开始菜单里塞满从未点开的应用,设置首页全是微软的推广卡片。我帮他逐个卸载预装应用、关遥测、改注册表,折腾了整整一下午。第二次遇到同样的情况,我决定找现成的工具,然后遇到了 Win11Debloat——一个用 PowerShell 写的开源项目,把这些零散操作收拢成了"勾选、执行、重启"三步。
它不是"一键优化大师",而是一份可审查的操作清单
很多同类工具喜欢把功能包进一个不透明的黑色盒子,Win11Debloat 的相反。整个项目就是一份公开的脚本加一堆.reg注册表文件:Regfiles/目录下放着每一个修改项的独立注册表文件,Config/目录下是应用清单和默认设置,Scripts/目录里是按职责拆分的模块。你完全可以逐行读代码,确认它到底改了什么,再决定要不要跑。
它解决的核心问题是:Windows 10 和 Windows 11 预装了大量你可能永远用不到的应用(Clipchamp、Cortana、各类 Bing 资讯应用、Copilot),同时默认开启遥测、位置服务、广告推送。Win11Debloat 把这些散落在"设置"界面各处、需要手工逐个关闭的开关,集中到一个脚本里处理。
三种启动方式,从新手到管理员
最简单的运行方式,以管理员身份打开 PowerShell,粘贴:
& ([scriptblock]::Create((irm "https://debloat.raphi.re/")))脚本会自动下载并在当前会话里执行。网络不便时,可以先把仓库克隆到本地:
git clone https://gitcode.com/GitHub_Trending/wi/Win11Debloat然后直接双击Run.bat,接受 UAC 管理员授权即可。脚本开头有一行#Requires -RunAsAdministrator,没有管理员权限它根本不会继续——因为无论是卸载应用还是改注册表,都需要这个权限。
技术用户可以用高级方式:在解压目录执行.\Win11Debloat.ps1,此时脚本默认加载图形界面;加-CLI参数则进入命令行模式。
界面里的每个选项背后都对应一个参数。比如命令行下想只做隐私相关设置,可以写:
.\Win11Debloat.ps1 -CLI -DisableTelemetry -DisableBing -DisableLocationServices执行前脚本会打印一份"待执行更改"清单,你可以确认无误后再回车。
原理拆解:它其实是在帮你组装 reg 命令
这是这个项目最值得学习的地方。Config/Features.json里记录了每个功能的元数据——功能 ID、界面显示名、对应的注册表文件路径、适用版本范围(MinVersion/MaxVersion)。界面上的每个复选框,本质上只是往参数表里塞一个键;真正执行时,脚本遍历参数表,逐个调用Scripts/Features/ImportRegistryFile.ps1里的函数,用reg import把对应的.reg文件灌进系统。
也就是说,每个优化项都是一个独立的注册表文件,改哪一项、改什么值,清清楚楚。例如禁用遥测的修改落在HKU\...\Software\Microsoft\Windows\CurrentVersion\AdvertisingInfo下的Enabled=dword:0。
更有意思的是 Sysprep 模式。参数-Sysprep会把修改应用到 Windows 的 Default 用户配置文件上:脚本用reg load "HKU\Default" <NTUSER.DAT>把目标用户的注册表配置单元挂载成临时键,导入.reg文件,再reg unload卸载。这样所有新建的用户一登录就继承这些设置,很适合系统管理员在封装系统镜像时用。同样地,-User参数可以把改动应用到指定的其他账户,而不是当前登录用户。
应用卸载的两套逻辑
预装应用的移除分两种情况。绝大多数普通应用走Remove-AppxPackage,用通配符匹配包名后逐个卸载;Edge 和 OneDrive 则特殊处理,改走winget uninstall,因为这两个组件直接卸载 Appx 包容易出问题。卸载 Edge 如果失败,脚本会询问是否要"强制卸载"——但弹窗里明确标注 NOT RECOMMENDED,这是设计上刻意保留的一道安全闸。
需要留意的是卸载范围:默认对所有用户生效,同时从系统镜像中移除(Get-AppxProvisionedPackage对应那条)。也就是说新用户登录也不会再看到这些应用,而不是只对当前账户生效。
可逆性是它的底线
项目里每一处修改都能找到对应的撤销文件,集中在Regfiles/Undo/目录。Disable_Telemetry.reg对应的就是Enable_Telemetry.reg,把值改回去即可。被卸载的应用大多可以通过 Microsoft Store 重新安装。此外 GUI 模式下可以在执行前勾选创建系统还原点,多一层保险。
这带来一个实际好处:你可以放心地做实验。先跑默认设置,重启后观察几天,觉得某个改动不合适,双击对应的 Undo 文件就能还原。
说说它的边界
Win11Debloat 并不做"性能魔法"。它清理的是预装应用和后台干扰,对开机速度、内存占用的提升取决于你系统里有多少"包袱"——机器越乱,效果越明显;本来就精简的干净系统,收益自然有限。另外两个实际的限制:其一,它依赖 WinGet,如果系统里 WinGet 缺失或过旧,Edge 和 OneDrive 的卸载会失败,脚本启动时也会给出警告;其二,部分设置会随 Windows 功能更新被重置,大版本更新后需要重跑一次。最后,虽然项目本身开源可审查,但任何批量修改系统的工具都有风险,跑之前备份数据、创建还原点,永远是正确的习惯。
如果你不想为了几个设置项再花掉一个下午,不妨从命令行跑一次-CLI模式,先只勾选遥测和广告相关的几项,感受一下"每一步改动都可追溯"的安心感。系统优化这件事,透明比强力更重要。
【免费下载链接】Win11DebloatA simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and customize your Windows experience. Win11Debloat works for both Windows 10 and Windows 11.项目地址: https://gitcode.com/GitHub_Trending/wi/Win11Debloat
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考