官方 Windows 11 镜像快速瘦身:Tiny11Builder 完整指南与避坑清单
【免费下载链接】tiny11builderWinUI app for building smaller, customized Windows 11 images.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
Tiny11Builder 是一套开源 PowerShell 脚本,仅依赖微软官方组件(DISM 与 ADK 附带的 oscdimg.exe),就能把官方 Windows 11 ISO 精简成体积更小、可直接安装启动的 tiny11.iso,并绕过 TPM 等硬件门槛。本文一次讲清版本选择、完整制作流程、体积优化原理与常见报错的处理办法。
先弄清用途:按角色决定选哪个版本、能用在什么环境
这节回答"我该不该用、用哪个"。三种典型使用者的取舍差别很大,先对号入座再动手:
- 开发者 / 测试人员:推荐核心版(tiny11Coremaker.ps1)。镜像小、开机快,适合给虚拟机、测试床或 CI 流水线搭标准 Windows 11 环境;若依赖 .NET 3.5,在制作过程中的交互提示里勾选启用即可。注意:这类环境属于消耗品,不要拿来跑生产业务。
- 运维 / IT 人员:推荐常规版(tiny11maker.ps1)。硬件限制绕过、本地账户 OOBE、关闭遥测都已预置,适合批量装机;装完接上内部更新源后,补丁维护流程完全不受影响。
- 普通用户:最典型的场景是救活不达标的新机——CPU 或内存不满足官方要求时,靠脚本写入的绕过开关也能顺利安装。装完后可用 winget 补装自己的应用,若 winget 版本过旧,先从 Microsoft Store 更新它。
一句话:镜像长期在真机上用选常规版;虚拟机、CI 等消耗品环境选核心版。
常规版 vs 核心版:瘦身幅度与维护性的取舍对比
两个脚本的差异本质是"删得越狠、后续越难修"。开工前对照下表确认需求:
| 对比维度 | 常规版 tiny11maker.ps1 | 核心版 tiny11Coremaker.ps1 |
|---|---|---|
| 预装应用 | 移除 50 余个 Appx 包前缀(Xbox 系列、新闻、Teams、Copilot 等) | 在常规版基础上继续删 |
| WinSxS 组件存储 | 保留 | 删除 |
| Windows Defender | 保留 | 禁用(需要时可重新启用) |
| Windows Update | 可用 | 移除(失去 WinSxS 后无法更新) |
| WinRE 恢复环境 | 保留 | 移除 |
| .NET 3.5 | 装完后可随时添加 | 制作时必须决定 |
| 制作后的维护能力 | 可继续添加语言包、更新、功能 | 不能再添加任何内容 |
✅ 选型结论:要长期在真机上使用就选常规版;虚拟机、测试床、CI 环境直接上核心版。
制作流程五步走:从官方 Windows 11 ISO 到 tiny11.iso
本节按实际操作顺序串起准备、挂载、策略设置、脚本启动与交互,每步只保留必要的命令。
- 获取脚本。仓库地址固定,克隆到本地即可(只读使用,无需修改):
git clone https://gitcode.com/GitHub_Trending/ti/tiny11builder准备并挂载源镜像。从微软官网下载 Windows 11 ISO(任意版本号、任意语言,x64 与 arm64 均可,脚本会自动识别架构),在资源管理器中右键挂载为本地磁盘。
配置执行策略。以管理员身份打开 PowerShell 5.1,然后运行:
Set-ExecutionPolicy Bypass -Scope Process-Scope Process表示放开权限只作用于当前会话,窗口一关即恢复原策略,不会改动系统全局设置。
- 启动脚本:
.\tiny11maker.ps1 -ISO E -SCRATCH D-ISO填挂载后 ISO 的盘符(只写字母、不带冒号);-SCRATCH填暂存盘盘符——WIM 与解压文件都落在这块盘上,建议预留 40GB 以上空间。参数详情可随时用Get-Help查看。
- 跟随交互完成。依次输入盘符、选择 SKU 索引(Home/Pro 等),然后等待。完成后
tiny11.iso会出现在脚本所在目录;全程还有Start-Transcript生成的带时间戳日志文件,排查问题直接翻查即可。
⚠️ 如果忘了用管理员身份启动,脚本会自动弹出一个新的提权窗口继续执行,此时关闭旧窗口即可,不要两边同时操作。
镜像为什么能更小:离线改造、两层压缩与硬件限制绕过
这一节解释三件核心事:改动如何不落在一台真实系统上、体积优化发生在哪两个环节、TPM/安全启动等检查是怎么被绕过的。
不安装系统,直接修改离线镜像
常规版脚本约 500 行,核心流程如下:
- 源镜像若是
install.esd(单向压缩格式,无法挂载),先用Export-WindowsImage转成 WIM; - 用
Mount-WindowsImage把选中的索引挂载到暂存目录; - 用
dism /Get-ProvisionedAppxPackages枚举预配应用包,与内置的$packagePrefixes前缀表比对,命中即调用/Remove-ProvisionedAppxPackage批量移除; - Edge 和 OneDrive 属于受保护文件,先
takeown+icacls拿回所有权,再从文件系统层面删除; - 离线镜像里的 SYSTEM/SOFTWARE 无法像在线系统那样直接打开,脚本用
reg load把镜像内的注册表 hive 挂成HKLM\zSYSTEM等临时键,再通过Set-RegistryValue统一写入各类开关,改完reg unload; - 最后执行
dism /Cleanup-Image /StartComponentCleanup /ResetBase清理组件残留,并以dism /Export-Image ... /Compress:recovery导出封装。
这样设计的好处是:所有变更直接落在镜像文件上,产物 100% 可复现,且全程不需要一台真实系统环境。
两层压缩:制作时一次,安装时一次
最终 ISO 的体积来自两个环节的叠加:
- 制作时:
Dism.exe /Export-Image附带/Compress:recovery,恢复压缩比普通导出更紧凑; - 安装时:随 ISO 打包的 autounattend.xml 里
<Compact>true</Compact>会指示安装器部署完成后自动对盘上文件做/compact压缩,装机后的占用也随之变小。同一个文件中的HideOnlineAccountScreens还隐藏了 OOBE 的微软账户界面,直接走本地账户。
封装环节由oscdimg.exe完成:脚本优先查找系统 ADK 路径(C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\...),找不到则自动从微软官方符号源下载,无需手工安装 ADK。
TPM 与安全启动等检查是如何绕过的
脚本向install.wim 和 boot.wim 两份镜像各写入一组开关:
# HKLM\SYSTEM\Setup\LabConfig 下(install.wim、boot.wim 各写一份) BypassTPMCheck = 1 BypassSecureBootCheck = 1 # 另有 BypassRAMCheck / BypassCPUCheck / BypassStorageCheck = 1 # 以及 HKLM\SYSTEM\Setup\MoSetup\AllowUpgradesWithUnsupportedTPMOrCPU = 1之所以要写两份,是因为安装初期运行在 boot.wim 的 WinPE 环境里,它才是执行硬件检查的第一关。与此同时,脚本还关闭了遥测、广告推送与消费者内容,并禁用约 7GB 的预留存储(Recovery 分区)。
常见报错与坑位:现象-原因-处理速查
遇到下面的情况不必慌,按表对照即可:
| 现象 | 原因 | 处理办法 |
|---|---|---|
| 核心版做好后无法再加语言、更新、功能,WinRE 也没了 | 删除 WinSxS 后系统失去可维护性,README 明确它不能替代日常使用的 Windows 11 | 仅作一次性测试环境,日常机器改用常规版 |
| 过段时间 Outlook、Dev Home 又出现 | Windows Update 会把它们拉回;脚本已写入workCompleted=1加强拦截,但拦截并非绝对 | 发现后手动再删一次即可 |
| 设置里残留少量 Edge 条目 | 应用本体已删除,但部分设置项未清理干净 | 表面问题,不影响使用,忽略 |
| 制作 arm64 镜像时闪过一行报错 | arm64 镜像的 System32 里本来就没有OneDriveSetup.exe | 无害报错,可忽略 |
| 没有用管理员身份运行 | 权限不足无法继续 | 脚本自动弹出新的提权窗口继续执行,关掉旧窗口即可 |
找不到oscdimg.exe | 系统未安装 ADK | 脚本自动从微软官方符号源下载,无需手动处理 |
| 装完后 winget 装不了应用 | winget 版本过旧 | 先从 Microsoft Store 更新 winget 再安装应用 |
想改成自己的规则:精简清单与注册表开关
自定义入口只有两个,改之前建议先通读一遍脚本全文:
$packagePrefixes前缀列表:决定删哪些预装应用。用Get-ProvisionedAppxPackages可以列出镜像里全部预配应用,拿到包名前缀后即可任意增删条目;批量出镜像时,把这张清单换成团队自己的组件白名单即可。- 各类
Set-RegistryValue调用:遥测、广告、Copilot 等行为开关都以键值形式写入,直接调整对应键值即可改变系统行为。
按 README 中的 TODO,后续方向包括更准确的语言/架构自动检测、更灵活的"保留/删除"选项,也许还会提供 GUI——想深入定制的话,这两个入口就是全部起点。
一张官方 Windows 11 ISO、几分钟等待、零第三方工具,换来的是一张更小、更安静、不受硬件门槛限制的安装盘——这就是用 Tiny11Builder 做镜像精简的全部价值。
【免费下载链接】tiny11builderWinUI app for building smaller, customized Windows 11 images.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考