解决 tiny11builder 构建失败:"oscdimg.exe not found" 完整排查与修复指南
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
用 tiny11builder 构建精简版 Windows 11 镜像时,最常见的翻车点就是最后一步:构建一路正常,走到 "Creating ISO image..." 却提示找不到 oscdimg.exe,直接中止。本文先用一条诊断命令确认你当前处于哪种状态,再给出轻量与完整两条修复路线,每步都能验证,跟着做完即可通过验收、生成可用的 tiny11.iso。
💡 如果还没拿到项目源码,先克隆它:
git clone https://gitcode.com/GitHub_Trending/ti/tiny11builder完成后目录里应有 tiny11maker.ps1、README.md 等文件,即视为正常。
报错现场:构建卡在最后的 "Creating ISO image..."
构建前半段(复制镜像、挂载、DISM 精简压缩)都正常,只在打 ISO 这步停下。典型的日志长这样:
Creating ISO image... ADK folder not found. Will be using bundled oscdimg.exe. Downloading oscdimg.exe... Invoke-WebRequest : 无法连接到远程服务器。 Failed to download oscdimg.exe.关键就在最后两行:ADK 没找到,回退下载又失败,脚本只能中止退出。
如果你再新开一个窗口想手动运行 oscdimg 试试,还会看到另一种报错:
PS C:\tiny11builder> oscdimg.exe -m -o -u2 .\src .\test.iso oscdimg.exe : 无法将"oscdimg.exe"项识别为 cmdlet、函数、脚本文件或可运行程序的名称。这是因为 oscdimg.exe 既不在当前目录、也不在 PATH 里——它随 Windows ADK 提供,普通系统默认没有它。
oscdimg.exe 在构建链路里负责哪一步
排查前先花 30 秒看懂这个工具的位置,后面所有结论都建立在这三点上:
- 它是最后一环,也是唯一的外部可执行程序。拆镜像、精简、压缩全靠系统自带的 DISM;只有 oscdimg 负责把整个目录封装成 ISO 9660/UDF 光盘镜像,并同时写入 BIOS 与 UEFI 双引导扇区,所以它无法被 DISM 替代。
- 脚本找工具的顺序是写死的:先查 ADK 默认安装目录(路径里带 CPU 架构子文件夹),再查脚本同目录下的
oscdimg.exe,都没有才尝试从微软官方源下载。 - 注意收尾动作:构建成功后,脚本会自动删掉本地下载的 oscdimg.exe。也就是说没有 ADK 的机器,每次构建都要重新准备工具。
先跑这条诊断命令,确认你现在处于哪种状态
别急着装东西。下面这条命令模拟了脚本查找工具的完整逻辑,一次就能告诉你"你在哪种状态":
# 把第一行改成 tiny11maker.ps1 实际所在的目录 $scriptDir = "C:\tiny11builder" $adkDir = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$Env:PROCESSOR_ARCHITECTURE\Oscdimg" "① ADK默认目录: " + (Test-Path "$adkDir\oscdimg.exe") "② 脚本目录单放: " + (Test-Path "$scriptDir\oscdimg.exe") "③ 架构标识: " + $Env:PROCESSOR_ARCHITECTURE结果只有三种读法:
- ① 为 True → 工具已在位。构建仍报错,多半撞上了"路径没对上"的坑,直接看文末速查表。
- ① 为 False、② 为 True → 轻量路线已满足,直接跳到验收关。
- 两项都为 False → 这就是你报错的根因:没有任何可用工具,自动下载又失败了。选下面一条路线修复。
💡 构建时脚本还会在脚本目录生成tiny11_时间戳.log转录文件,对照上面"报错现场"的日志逐行看,定位更快。
路线 A(轻量):不装 ADK,给脚本目录备一个 oscdimg.exe
适合一次性构建、虚拟机、离线机器,一共 2 步。
第 1 步:把 oscdimg.exe 放进 tiny11maker.ps1 所在目录。获取方式二选一:
- 能访问微软官方地址的机器:不用手动做,脚本构建时会自动下载到脚本目录;
- 离线或网络不稳的机器:从别的机器 ADK 目录里拷一份现成的 oscdimg.exe 放到脚本目录。
第 2 步:验证文件确实就位(路径按实际改):
Test-Path "C:\tiny11builder\oscdimg.exe"成功标志:输出True;重新构建时日志会打印 "oscdimg.exe already exists locally."(自动下载场景则是 "oscdimg.exe downloaded successfully.")。
路线 B(完整):安装 ADK 部署工具,让脚本自动发现
适合经常做镜像的机器,一共 2 步。
第 1 步:安装 Windows ADK,用 winget 一条命令最省事:
winget install --id Microsoft.Windows.Assessment-Deployment-Kit --accept-source-agreements --accept-package-agreements⚠️ 如果你改用 ADK 安装程序手动装,组件列表里必须勾选 "Deployment Tools"——只装 SDK 是不会生成 Oscdimg 文件夹的。装完直接进入第 2 步验证。
第 2 步:重跑上面"诊断命令"那一节里的命令,确认状态翻转。
成功标志:① ADK默认目录 的输出由 False 变成 True,此后每次构建脚本都会自动用它,无需再准备工具。
两条路线怎么选:一张表对比
| 对比维度 | 路线 A:单放工具 | 路线 B:安装 ADK |
|---|---|---|
| 一次性成本 | 放/下一个百 KB 级文件 | 安装数 GB 级工具链 |
| 权限要求 | 普通用户即可 | 需要管理员 |
| 每次构建成本 | 要重新下载或重放(收尾会删) | 零,自动发现 |
| 网络依赖 | 需要(除非已有本地副本) | 装完即无 |
| 附带能力 | 无 | ADK 部署工具链可留作他用 |
| 适合人群 | 一次性、临时、离线环境 | 长期镜像开发 |
按场景给一句话推荐
- 长期开发环境:选路线 B——脚本自动发现,每次构建零准备,ADK 工具链还能复用到其他部署工作。
- 临时或一次性构建:选路线 A——免安装,脚本自动下载、自动清理,用完不留痕迹。
验收关:先最小验证,再跑完整构建
第 1 步,最小验证——先单独跑一下 oscdimg,确认工具本身可用(路径按你的实际位置改):
& "C:\tiny11builder\oscdimg.exe"成功标志:控制台打印出 oscdimg 的 Usage 用法说明,说明工具没问题;若仍报"无法识别",则是路径写错了。
第 2 步,完整构建——以管理员身份打开 PowerShell 5.1(非管理员运行时脚本会自动提权重开窗口),执行:
Set-ExecutionPolicy Bypass -Scope Process .\tiny11maker.ps1 -ISO E -SCRATCH D其中E是已挂载的 Windows 11 ISO 盘符(只填字母、不带冒号),D是暂存盘,省略时默认用脚本所在目录。
✅ 成功标志:脚本目录出现tiny11.iso,大小通常在 3~5GB,日志末尾打印 "Creation completed!" 即构建通过。
高频坑速查(现象 → 解法)
- 现象:明明装了 ADK,日志仍显示 "ADK folder not found."解法:脚本只认默认安装路径加架构子文件夹;ADK 装到了自定义目录、或漏勾 "Deployment Tools" 组件都会被错过 → 重装回默认路径并勾选组件,或直接走路线 A。
- 现象:第一次构建成功,第二次构建突然失败。解法:构建收尾会删掉本地 oscdimg.exe,第二次启动还要从远程源补拉 autounattend.xml,离线机器会直接中止 → 离线环境构建前把这两个文件备份好,或装上 ADK 一劳永逸。
- 现象:手动敲
oscdimg.exe提示"不是内部或外部命令"。解法:它不在 PATH 里,脚本也只在两个固定位置(ADK 默认目录、脚本目录)找工具 → 把文件放到正确位置,再用完整路径验证。 - 现象:下载环节超时,重试依旧失败。解法:代理或防火墙拦截所致 → 手动放置工具改走路线 A 的离线做法,或先给 PowerShell 配置好系统代理再重试。
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考