如何把官方 Windows 11 ISO 精简成可启动安装盘:tiny11builder 完整指南
【免费下载链接】tiny11builderWinUI app for building smaller, customized Windows 11 images.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
想把 Windows 11 装到没有 TPM 的老机器上,或者给虚拟机准备一个预装软件尽可能少的系统?tiny11builder 用 PowerShell 和微软自带的 DISM,把官方 Windows 11 ISO 里的预装应用成批删掉,重新压成一张体积更小、可直接启动的 tiny11.iso。
先说结果:tiny11.iso 长什么样
跑完脚本,你得到的是脚本目录下的 tiny11.iso,BIOS 和 UEFI 都能启动(脚本用 oscdimg 同时写入了两种引导扇区),可以直接刻 U 盘或塞进虚拟机。
它比官方 ISO 少了这些东西:
- 标准版:删掉 50 多个 Appx 应用前缀(Teams、Outlook、Xbox 全家、待办、闹钟、地图、反馈中心等),另外物理删除 Edge 的 3 个程序目录、WebView2 运行时和 OneDriveSetup.exe
- 标准版同时写入一组注册表开关:5 个硬件检查绕过(BypassCPUCheck、BypassRAMCheck、BypassSecureBootCheck、BypassStorageCheck、BypassTPMCheck)加上 AllowUpgradesWithUnsupportedTPMOrCPU,以及本地账户、关遥测、关保留存储、关 BitLocker 设备加密等
- 核心版在标准版基础上再删:12 个系统级 FoD 包(Internet Explorer、WordPad、MediaPlayer、Steps Recorder 等)、WinRE、Windows Update,并把 WinSxS 裁成只保留 servicingstack 等最小集合
体积方面仓库没给绝对数字,缩小的主要来源是应用移除加/Compress:recovery压缩,成品 ISO 比同源的官方版更小。交互成本上:一条命令启动,你要手动输入的就三处——ISO 盘符(参数没传时)、SKU 序号、核心版的 .NET 3.5 提问。
谁该用 tiny11builder,谁该绕开
适合的情况:
- 老硬件装 Windows 11:硬件检查绕过默认写好了,不用你另外折腾
- 日常主力机但想砍预装:标准版保留 WinSxS 和 Update,装完还能正常打补丁
- 批量铺虚拟机、测试床:核心版镜像更小,.NET 3.5 一句话内置
- 想沉淀自己的装机底模:应用清单是开放的前缀表,改完重跑即可复刻
该绕开的情况:
- 你不开 PowerShell 的话,整个流程没法走
- 打算把核心版当长期系统:它打不了更新,也不能再补语言和可选功能
- 追求零残留:Edge 的设置条目等已知残留客观存在
全流程概览:官方 ISO 到 tiny11.iso 怎么走
整条链路只依赖微软自家工具。脚本把挂载好的 ISO 整体复制到工作目录,遇到 install.esd 先转成 install.wim,然后用 DISM 挂载系统镜像做三件事:按前缀表移除 Appx 包、删 Edge 和 OneDrive 文件、加载注册表 hive 写入绕过与精简开关。卸掉镜像后用/Compress:recovery重新导出;接着引导镜像 boot.wim 再挂一次,写入同样的硬件绕过值。最后把 autounattend.xml 拷进镜像和 ISO 根目录,oscdimg.exe 压成可启动光盘。全程用 Start-Transcript 落盘日志,出问题可以逐条回溯。
动手:从官方 ISO 生成 tiny11.iso
准备
- 一台带 PowerShell 5.1 的 Windows 机器。脚本以管理员运行,检测到非管理员会自动弹 UAC 重开一个窗口
- 一份官方 Windows 11 ISO,任何版本、语言、架构都可以
- 一块空间充足的盘放中间文件:镜像要在这里完整复制并挂载,别挑快满的小盘
执行
- 在资源管理器里挂载 ISO,记下盘符,比如 E
- 克隆仓库后进入脚本目录,以管理员身份打开 PowerShell 5.1,先放开当前会话的执行策略:
Set-ExecutionPolicy Bypass -Scope Process- 启动标准版:
.\tiny11maker.ps1 -ISO E -SCRATCH D参数说明:
-ISO:挂载的 ISO 盘符,只写字母不带冒号,限制在 c-z-SCRATCH:工作盘;不填默认用脚本所在目录- 两个参数都可省略,脚本会逐项提示;想查完整帮助可运行
get-help - 脚本列出镜像里所有系统版本,按提示输入序号即可,家庭版、专业版各占一个索引
取成果
- 结束后 tiny11.iso 就在脚本目录,过程日志也在同目录,标准版文件名带时间戳
- 收尾都是自动的:删除工作目录、弹出挂载的 ISO、删掉临时下载的 oscdimg.exe
- 打盘工具优先用系统里 ADK 的 oscdimg.exe,找不到才从微软官方地址自动下载
- 核心版不用带参数,直接运行,工作目录固定在系统盘,中途会依次问:是否继续、盘符、SKU 序号、是否启用 .NET 3.5:
.\tiny11Coremaker.ps1最后一问答 y 时,脚本用系统镜像自带的sources\sxs作源就地注入 .NET 3.5,过了这一步就补不回来了。
标准版与核心版怎么选
如果你的系统要长期用、还要打补丁,选 tiny11maker.ps1;如果是装完就扔的虚拟机或测试环境,选 tiny11Coremaker.ps1。核心版多做的三件重活:WinSxS 裁成最小集合、Defender 的 5 个服务(WinDefend、WdNisSvc、WdNisDrv、WdFilter、Sense)Start 设为 4 禁用(之后可手动恢复)、winre.wim 删除。
| 对比项 | 标准版 tiny11maker.ps1 | 核心版 tiny11Coremaker.ps1 |
|---|---|---|
| 最终系统镜像格式 | install.wim,/Compress:recovery 导出 | install.esd,先 /compress:max 再 /Compress:recovery 导出 |
| 日志文件 | tiny11_时间戳.log | tiny11.log |
| 构建中额外确认 | 无,只输 SKU 序号 | 先确认是否运行,再确认是否启用 .NET 3.5 |
| Windows Update | 服务保留 | wuauserv 置为禁用,删除 WaaSMedicSVC 与 UsoSvc 注册表项 |
| 恢复环境 | 保留 | winre.wim 删除,原位建空文件 |
tiny11builder 里可以自己改的 3 个地方
克隆仓库后,所有改动都在你本地的副本里做,改完重跑脚本即可。
- Appx 移除清单 $packagePrefixes,在 tiny11maker.ps1 里。标准版按前缀匹配镜像里的预装包再逐个移除。怎么改:想保留某个应用,删掉对应那一行前缀;想追加黑名单,仿照
Microsoft.应用名的格式加一行。 - 应答文件 autounattend.xml。两个节点决定大部分安装行为:oobeSystem 阶段的
HideOnlineAccountScreens为 true 时跳过微软账户界面直接进本地账户;windowsPE 阶段的Compact为 true 时带/compact压缩标志部署。怎么改:打开文件改对应节点值,脚本会把它同时拷进镜像的 Sysprep 目录和 ISO 根目录,改一处两边生效。 - 核心版的 .NET 3.5 提问。测试环境需要 .NET 3.5 就构建时答 y,由 sources\sxs 就地内置;答 n 之后永远补不上,所以先想清楚再答。
常见问题
问:装好的系统里 Winget 装不了应用?
答:内置的 Winget 版本较旧。先到 Microsoft Store 把 Winget 更新一次,之后即可正常安装。
问:用 arm64 ISO 运行时闪一下报错?
答:arm64 镜像的 System32 本身没有 OneDriveSetup.exe,删除步骤必然触发一次提示。属预期行为,不影响最终出盘。
问:设置里为什么还能看到个别 Edge 条目?
答:应用本体已删除,少数设置与注册表条目是已知残留。脚本已删掉 Edge 的 Uninstall 注册表键,不影响使用。
问:用了一段时间,Outlook 和 Dev Home 又冒出来了?
答:Windows Update 调度器会自动推送这两个应用。脚本已写入 workCompleted 键拦截,仍冒出来的话手动再删一次。
问:核心版系统为什么打不了更新、加不了语言?
答:WinSxS 被裁掉后系统失去可维护性。这是设计而非故障,需要打补丁就用标准版出盘。
资源索引
git clone https://gitcode.com/GitHub_Trending/ti/tiny11builder- README.md:两个脚本的完整移除清单、已知问题与版本警示
- tiny11maker.ps1:标准版入口,Appx 前缀清单和全部注册表开关都在这里
- tiny11Coremaker.ps1:核心版入口,WinSxS 裁剪、WinRE 删除和 Update 禁用逻辑的实现细节
- autounattend.xml:跳过微软账户、启用压缩安装的 OOBE 应答文件
【免费下载链接】tiny11builderWinUI app for building smaller, customized Windows 11 images.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考