它不卸载任何预装软件,也不用你再上网抄一堆注册表路径。
重装完 Windows 11,你干的第一件事是什么?
我猜很多人的答案是:删预装软件、关推荐、关小组件、改资源管理器显示项,再挨个装 Git、终端、PowerShell 7……一圈折腾完半天没了,而且换个机器还得再来一遍。
2026 年 6 月的 Microsoft Build 上,微软自己开源了一套工具来终结这件事——Windows Developer Config(仓库:github.com/microsoft/WindowsDeveloperConfig,MIT 协议)。它的目标很直白:一条命令,把刚装好的 Windows 11 变成一台干净的开发机,装齐开发工具、改掉该改的系统设置,最后顺手把 WSL + Ubuntu 也装好。
上线几个月,这个仓库已经攒下近 3000 颗星(2,975 star / 203 fork,最近一次提交就在这几天)。

先纠偏:它到底是什么,不是什么
中文社区里流传最广的说法是”一行命令去除 Windows 11 所有预装软件和广告”。这话只对了一半,我翻了仓库源码,有三点必须说清楚:
1)它不卸载任何预装应用。 整个仓库里没有一条针对消费者预装应用(资讯、天气、Clipchamp 之类)的卸载命令。唯一出现的 Remove-AppxPackage 位于 winget 自身的升级逻辑里(清理旧版 App Installer),以及”卸载模式”清理它自己装的工具。它清掉的是广告位,不是预装软件:小组件(Widgets)整块用策略关掉、开始菜单推荐与账户通知关掉、搜索框的网络结果与搜索高亮关掉、通知全局静音(免打扰常开)、Edge 新标签页改成 about:blank 并跳过首次运行引导。体感上你确实觉得”广告没了”,但系统里的 Appx 包一个没少。
2)它不是”暴力改注册表”的第三方脚本。 走的全是微软自己的官方机制:winget 装包、公开的注册表键、DSC 风格的声明式配置;每个步骤都是”检查 → 应用 → 再检查”三连,检查通过就打印 already OK 直接跳过;步骤分等级,不影响大局的失败只标 flagged 并继续跑。
3)它是幂等的、可以反复重跑。 重跑只修复漂移掉的部分,不会重复劳动——这正是它和一堆”一键优化脚本”的根本区别,后者跑第二遍往往就出事。
发布与校验也确实按”官方工具”的标准做:生产路径只认微软公司的 Authenticode 签名,从固定 commit SHA 拉取 payload,字体和 winget 安装包按 SHA-256 校验,最终解压到管理员保护的 %ProgramData%\CalmOS。它不收集遥测、不登录任何账号、不动 Windows Defender 设置。
三套配置,按需取用
仓库里其实住着三个工具:
- Windows Dev Config:主角。一条命令把新机器配成开发工作站,中间强制重启一次,分 Standard / Full 两档。
- WSL Comfort(别号 Comfort Shell):不碰 Windows 主体,专门把 WSL 里的 Ubuntu 配成顺手的 shell——zsh 或 bash 二选一、可选 Starship 提示符、可选现代 CLI 全家桶(
fzf、rg、fd、bat、eza、zoxide、jq)、可选 Homebrew、可选 Git 默认配置,再配一个用 Cascadia Code NF 的主题化 Windows Terminal 配置。交互式/无人值守两种模式都支持,组件可以只挑自己要的。 - Workloads:只想要一种语言环境时,单独一条命令装 TypeScript、PHP、.NET、Go、Java、Rust、Python、SQL、PowerShell、WinForms 或 WinUI 3 其中之一。
Standard 和 Full 的差别值得记一下:Standard(内部叫 Partial)会跳过 Sudo、开发者模式、远程桌面、Edge 策略、资源管理器”推荐/云文件”、全局通知、蓝牙托盘图标、搜索网络结果、搜索高亮、小组件和 WinUI 模板,但依然会注册 WinUI 的 Copilot 插件。
一条命令,但先看前置条件
# Standard:轻量一档
irm https://aka.ms/devconfig/standard/setup.ps1 | iex
# Full:完整一档(推荐)
irm https://aka.ms/devconfig/full/setup.ps1 | iex
跑之前请确认这几件事:
- 系统是 Windows 11(明确不支持 Windows 10;少数设置只存在于较新版本,老版本上会自动跳过而不是报错)。
- 有管理员权限,并且能接受两次 UAC 弹窗(开始一次,重启后一次)。
- 磁盘至少 15 GB 空余。
- 网络能访问
github.com、raw.githubusercontent.com、PowerShell Gallery 和 winget 源;走代理的话,WinHTTP 和 winget 两边都要配好代理。 - CPU 硬件虚拟化可用:物理机要在 BIOS/UEFI 打开 VT-x / AMD-V,虚拟机需要宿主机开嵌套虚拟化。否则只有 WSL 会失败,其余步骤照常。
- 先存好手头的活:它会重启一次(只给 10 秒倒计时),因为启用 WSL 平台必须重启。
清机器 + 好网络,全程大约 30 分钟,大头是下载 VS Code、.NET SDK、PowerToys 和 Ubuntu。
它不要求你预装 Git、不用克隆仓库、不用先装 PowerShell 7,也不需要 winget configure 和 VC++ 运行库——这些它自己会处理。
它会给你装什么
全部走 winget 静默安装、自动同意协议。判定标准是”已安装且为最新版”,所以重跑也会顺手把软件升到最新。
| 类别 | 工具(winget id) |
|---|---|
| 终端与 Shell | Windows Terminal、Intelligent Terminal、PowerShell 7 |
| 代码与版本控制 | VS Code、Git、GitHub CLI、Azure CLI、GitHub Copilot CLI |
| 语言运行时 | .NET SDK 10、Python 3.14 + uv、Node.js LTS + nvm for Windows |
| 效率与开发 | PowerToys、Oh My Posh、Coreutils for Windows、Windows App CLI |
| 依赖 | Visual C++ 运行库(按架构选 x64 / ARM64) |
外加 Cascadia Code NF / Cascadia Mono NF 字体:从微软官方 release 2407.24 下载、校验 SHA-256 后装到所有用户目录。
终端侧同样被配好了:PowerShell 7 设为默认 profile、Oh My Posh 接管提示符、Cascadia Mono NF 设为默认字体,下拉菜单里还多一个 GitHub Copilot 配置(以 Windows Terminal 的 settings fragment 形式加入,不改你的主配置文件)。
它会改什么
系统级设置(HKLM,需要管理员)
| 设置项 | 值 |
|---|---|
| Sudo(内联模式) | 开启 |
| 开发者模式 | 开启 |
| Win32 长路径支持 | 开启 |
| 远程桌面允许接入 | 开启(防火墙规则并未放行) |
| 日期时间以外的主题 | 应用与系统全部切换为深色 |
资源管理器
| 设置项 | 值 |
|---|---|
| 显示文件扩展名 | 开 |
| 显示隐藏文件 | 开 |
| 标题栏显示完整路径 | 开 |
| 打开时定位到”此电脑” | 开 |
| 快速访问里的常用文件夹 / 最近文件 | 关 |
| 快速访问里的推荐与云文件 | 关 |
| 同步提供程序提示 | 关 |
| 详细信息窗格 | 默认展开 |
任务栏、开始菜单、搜索与通知
| 设置项 | 值 |
|---|---|
| 全局免打扰(所有通知横幅) | 开 |
| 搜索框里的网络结果 | 关 |
| 搜索高亮 | 关 |
| 开始菜单推荐项 | 关 |
| 开始菜单账户通知 | 关 |
| 小组件(Widgets) | 通过策略整块关闭 |
| 蓝牙托盘图标 | 隐藏 |
| 任务栏右键”结束任务” | 开 |
Edge 与主题:新标签页直接 about:blank、跳过首次运行引导(这两项以策略形式写入 HKLM\SOFTWARE\Policies\Microsoft\Edge,Edge 会显示”由你的组织管理”并把这两项置灰);应用与系统主题统一切到深色。
WSL 与 Ubuntu:通过 wsl --install --no-distribution 装平台组件(不可用时退回 dism 直接启用 VirtualMachinePlatform 和 Microsoft-Windows-Subsystem-Linux),然后安装 Ubuntu 并抑制首次运行欢迎页。注意——它不动 Ubuntu 里面的任何东西,那部分是 WSL Comfort 的活。
执行流程:11 个阶段,一次重启
完整档会把 11 个阶段跑一遍:准备(确保 PowerShell 7、必要时升级 winget)→ 装包 → 系统设置 → 资源管理器 → 任务栏/搜索/开始 → Edge → 字体 → Windows Terminal → PowerShell profile → GitHub Copilot(终端配置、WinUI 模板、Copilot CLI 插件)→ WSL + Ubuntu。WSL 放在最后是故意的,让那次重启发生在所有事情做完之后。
需要重启时,它会先把进度写进 devconfig-tally.json,注册一个名为 WindowsDevConfigResume 的计划任务,然后 10 秒后重启;你重新登录 30 秒后任务自动拉起窗口、再要一次 UAC,接着跑完并打印合并汇总。整个过程日志在 %ProgramData%\CalmOS\devconfig-log.txt。
单仓库里的 WinUI workload 更狠一点,会拉 Visual Studio Community 2026 加 WinUI 工作负载(好几个 GB,小虚拟机会很痛苦)。
实测里容易踩的坑
微软官方文档写得相当诚实,加上媒体实测和 issue 区反馈,下面这些值得提前知道:
- 权限:文档说”管理员与否都行”,但多个实测反馈在非管理员 PowerShell 里直接报错,用管理员窗口跑最稳。
winget configure报内部错误-2146233079:典型原因是缺 Microsoft Visual C++ 运行库——非提权环境下winget configure依赖它。补装 VC++ 运行库即可(Windows Dev Config 主流程不用winget configure,不受这个影响,但 Workloads 里的多数语言配置会用到)。- nvm 与 Node.js 打架:主配置会同时装上 Node.js LTS 和 nvm for Windows,仓库 issue #55 就在讨论这个冲突。打算用 nvm 的话,先把 Node.js 卸掉,让 nvm 独占 PATH。
- 远程桌面被打开:
fDenyTSConnections被置 0,允许 RDP 接入。防火墙规则没有放行,所以不至于直接暴露,但这确实改变了机器的安全姿态——介意的话可以在steps/registry-system.ps1里删掉RemoteDesktop条目。 - 通知被全局关闭:是真·全局免打扰,Teams、Outlook 一条弹窗都不会来,直到你手动打开。
- Windows Terminal 的
settings.json会被重写:会先写一个settings.json.bak,但文件经过 JSON 往返,你原有的注释会丢。 - 包版本会漂移:装的是 winget 当时的版本,两台机器在不同日期配置出来的东西可能不一样;
.NET SDK 10、Python 3.14这种带主版本号的将来需要手动升。 - 没有 dry-run:没有
-WhatIf,也没有”跳过某个包”的开关,Full和Partial都是整包安装。 - Git 和 GitHub CLI 只装不配:不会替你
git config user.name,也不会gh auth login。 %ProgramData%\CalmOS会留下:安装文件和日志留在原地以便续跑,删掉需要管理员权限。- 部分改动需要注销重登:资源管理器、任务栏的几项是登录时读取的。
后悔了怎么卸载
一条命令就能回滚(提升权限的 PowerShell 里执行):
& "$env:ProgramData\CalmOS\dev-config.ps1" -Action Uninstall
但要清楚它的脾气:卸载是”破坏性清理”,不做二次确认,会永久删除 Ubuntu 发行版及其文件,并尝试卸载上面列出的所有工具(包括你原本就装好的同款),并且不恢复此前的设置——它只是把各项设置重置为默认,而不是还原你原来的样子。字体、Windows Terminal、VC++ 运行库、安装文件与日志会留下,需要手工清理。
谁适合用
适合:手上有一台新装的 Windows 11,准备当成主力开发机;或者你手上有十几台开发机要统一环境(它的幂等和 CI 测试就是为这个准备的);再或者你只是想看看微软眼里”开发者该有的 Windows 默认值”长什么样——steps/registry-*.ps1 里的 $tweaks 列表本身就是一份很好的设置清单,可以直接抄。
先别碰:这台机器上的环境是你精心搭的、Terminal 配置里全是注释、有正在跑的 WSL 发行版;以及 Windows 10 用户(不支持)、机器没有硬件虚拟化又只想装 WSL 的人。
小结
Windows Developer Config 最有价值的地方,不是”又帮你省了半小时”,而是微软第一次把开发者这些年手工改 Windows 的习惯,公开写成了可版本化、可校验、可重跑的声明式配置。你可以不认同它的某些默认值(比如远程桌面和全局免打扰),但至少现在这些默认值摆在明面上,能看、能读、能改。
至于”去广告”这件事——它确实把系统里的广告位清得很干净,靠的是关推荐、关小组件、关网络搜索、静音通知,而不是删软件。这一点,值得在下次看到”一键卸载所有预装”的标题时多想一秒。
仓库地址:https://github.com/microsoft/WindowsDeveloperConfig













发表回复