tiny11builder 构建失败?oscdimg.exe not found 完整排查与解决指南
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
用 tiny11builder 构建 Windows 11 镜像,最后一步弹出 oscdimg.exe not found,tiny11builder 构建失败。本文给两条能直接落地的工具配置路线,带你把这个报错彻底排掉。
两条路线,先说结论
问题其实只有两条解法,选哪条就看你多久出一次镜像。
- 路线一(轻量独立部署):单独下一个 oscdimg.exe 放进脚本目录,约 100KB,普通权限就能跑,适合一次性、临时构建。
- 路线二(系统级 ADK 集成):把微软官方的 Windows ADK 部署工具装进系统,脚本会自动从标准路径找到它,适合长期做 Windows 镜像开发。
| 对比维度 | 路线一 · 独立部署 | 路线二 · ADK 集成 |
|---|---|---|
| 磁盘占用 | 约 100KB | 约 5GB(完整 ADK) |
| 权限要求 | 普通用户即可 | 需管理员权限 |
| 适用周期 | 一次性 / 临时 | 长期开发环境 |
| 配置复杂度 | 低(2-3 条命令) | 中(装组件 + 确认路径) |
一句话:偶尔用一次选路线一,天天做镜像选路线二。
读懂这条报错:oscdimg.exe 在流程里站哪
"oscdimg.exe not found" 字面意思就是"找不到 oscdimg.exe 这个文件",仅此而已,不是什么系统级灾难。
那它是什么?把整个构建想成打包快递:DISM 在前面负责装货、拆货、贴标签(挂载镜像、删应用、改注册表、卸载保存),而oscdimg.exe 是最后那台封口机——把这一堆散装文件压进一张可引导的光盘(ISO),封好口、盖上启动封条。
关键在于它排在整条流水线的末尾。脚本前面几十分钟的删减、挂载、压缩全都做完,最后喊一声 "Creating ISO image...",一调用 oscdimg.exe 却发现工具不在,直接报错退出。所以前面等得越久,这一步的失败越扎心。缺了它,tiny11.iso 就永远生不出来。
其实脚本自己会按顺序找工具:先查系统 ADK 的固定路径,再查脚本目录里的本地文件,最后才尝试联网下载。"not found" 就是这条链全断了。两条路线,一条是让 ADK 路径存在,一条是让本地文件存在。
先判断你该走哪条路
对着下面对号入座,10 秒定路线:
- 有台专门的 Windows 开发 / 镜像构建机,隔三差五就出 ISO →走路线二(ADK 集成)。
- 只是偶尔裁一个镜像、装个虚拟机,或机器空间紧张不想装 5GB 的东西 →走路线一(独立部署)。
- 拿不准?看脚本目录里有没有 oscdimg.exe、系统里装没装 ADK:都没有就从路线一开始,最快。
路线一 · 3 步独立部署 oscdimg
适合临时构建,普通权限即可,全程只碰脚本目录。
第 1 步:把 oscdimg.exe 下载到脚本目录。用微软官方符号源地址,放到 tiny11maker.ps1 所在目录。
Invoke-WebRequest -Uri "https://msdl.microsoft.com/download/symbols/oscdimg.exe/3D44737265000/oscdimg.exe" -OutFile ".\oscdimg.exe" -UseBasicParsing第 2 步:校验文件没下坏。网络中断可能让文件残缺,用哈希值核对一下。
Get-FileHash -Path ".\oscdimg.exe" -Algorithm MD5通过标准:输出的哈希值显示为 3D44737265000,说明文件完整。
第 3 步:重跑构建。脚本检测到本地已有 oscdimg.exe,就会直接用它,不再去别处找。
.\tiny11maker.ps1 -ISO E -SCRATCH DE 为挂载的 Windows 11 ISO 盘符,D 为临时工作盘符,完整参数用法见 README.md。
路线二 · 系统级 ADK 集成
适合长期开发环境,装一次以后脚本全自动找工具。
第 1 步:安装 ADK 部署组件。用 DISM 把部署工具能力装进系统,需要管理员 PowerShell。
DISM /Online /Add-Capability /CapabilityName:Tools.Deployment /All第 2 步:确认脚本能定位到 ADK。脚本按固定路径去 ADK 的 Oscdimg 目录找工具,确认这个目录存在即可。
Test-Path "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe"通过标准:返回 True,说明 ADK 部署工具已就位(arm64 机器把 amd64 换成 arm64)。
第 3 步:重跑构建。脚本检测到 ADK 目录存在,就会优先用系统里的 oscdimg.exe,并打印 "Will be using oscdimg.exe from system ADK."。
.\tiny11maker.ps1 -ISO E -SCRATCH D小提示:如果 ADK 装在非默认盘,脚本靠固定路径就找不到了,这时更建议直接走路线一,把 oscdimg.exe 丢进脚本目录,省事。
确认修好了:一键验证命令
改完不用空等,跑两条就能确认工具链就绪。
核对工具文件(路线一适用)。看哈希是否为 3D44737265000。
Get-FileHash -Path ".\oscdimg.exe" -Algorithm MD5通过标准:输出 Hash 值等于 3D44737265000。
核对 ADK 位置(路线二适用)。看标准路径下的 oscdimg.exe 在不在。
Test-Path "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe"通过标准:返回 True。
两条各命中其一,再重跑一次构建。脚本走到 "Creating ISO image..." 后就会开始产出 tiny11.iso,正常大小在 3-5GB 之间。看到脚本目录里出现 tiny11.iso,就代表 Windows 11 镜像构建报错真正解决了。
避坑速查
| 报错现象 | 可能原因 | 一行修复 |
|---|---|---|
| 无法执行 oscdimg.exe | 文件权限不足,当前用户没执行权 | icacls ".\oscdimg.exe" /grant Users:RX |
| 多个 oscdimg.exe 实例 | 磁盘残留多个旧版本,路径冲突 | 先定位再删旧:Get-ChildItem -Path "C:" -Filter "oscdimg.exe" -Recurse |
| 下载超时 / 文件损坏 | 网络不稳导致 oscdimg.exe 残缺 | 手动下载到脚本根目录,再核对哈希 3D44737265000 |
| 生成的 ISO 无法引导 | 工具版本与 Windows 11 版本不匹配 | 换用 ADK 10.1.22621.x 版本的 oscdimg.exe |
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考