tiny11builder 构建失败?3 步修复 oscdimg.exe 缺失
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
Failed to download oscdimg.exe.看到这行红字,tiny11builder 会直接退出,ISO 生不出来,你挂在盘上跑 DISM 的时间全白费。根因通常不是脚本 bug,而是脚本没找到可用的 oscdimg.exe,就从这里修。
搞清 oscdimg 在构建链里的位置
oscdimg.exe 是构建链里唯一的外部工具,负责把 scratch 盘上做好的镜像打成可引导 ISO;它一缺,整条链在最后一步断掉。脚本的查找顺序:
- 先查 ADK 安装目录(子目录按系统架构变量拼接)
- 查不到就自动下载到脚本自身目录
- 构建结束后自动删掉脚本目录里的临时文件
构建失败分诊:3 种原因你属于哪种
- 终端先打
ADK folder not found. Will be using bundled oscdimg.exe.,紧跟着Failed to download oscdimg.exe.→ 机器上没装 ADK,且自动下载被断网、代理或只读目录挡掉 - 明明装过 ADK,终端却照样走下载分支 → 你开的是 32 位 PowerShell,脚本去查
x86目录,而 ADK 装在amd64下,对不上号 - 打了
oscdimg.exe downloaded successfully.,后面打 ISO 仍然失败 → 下载到的文件不完整,或根本不是有效的 oscdimg.exe
Step 1:核查 ADK 目录是否可用
先确认脚本要查的那个目录真实存在,跑下面两行(等价于脚本自己的查找逻辑):
# 复刻脚本的查找逻辑:架构变量 + ADK 路径 $arch = $Env:PROCESSOR_ARCHITECTURE Test-Path "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$arch\Oscdimg"跑完这行,终端打出 True 或 False。如果你的环境已经装了 ADK(确认C:\Program Files (x86)\Windows Kits\10下有 "Assessment and Deployment Kit"),却打出 False,先看变量实际是什么:
# 确认脚本会去哪个架构子目录找 $Env:PROCESSOR_ARCHITECTURE打出x86,说明你开的是 32 位 PowerShell,关掉它,改用 64 位版本(C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe)以管理员身份重开;ARM64 机器变量是 ARM64,道理一样。真不存在的话,去 Step 2。两种常见环境的差异:
| 环境 | 差异点 | 处理方式 |
|---|---|---|
| 64 位 Windows + 64 位 PowerShell | 变量是 AMD64,与 ADK 默认安装目录一致 | 默认行为,不用动 |
| 64 位 Windows + 32 位 PowerShell | 变量变 x86,ADK 目录被误判为不存在 | 一律用 64 位 PowerShell 跑脚本 |
Step 2:修复工具缺失,手动部署 oscdimg.exe
如果你 Step 1 打出 False 且不想装几个 GB 的 ADK,就手动来:把脚本本来要下载的文件下到脚本所在目录。
# 下载与脚本同版本的 oscdimg.exe,存到当前目录 Invoke-WebRequest -Uri "https://msdl.microsoft.com/download/symbols/oscdimg.exe/3D44737265000/oscdimg.exe" -OutFile "oscdimg.exe" -UseBasicParsing # 备选(断网场景):浏览器手动下载后放到脚本目录,文件名必须叫 oscdimg.exe下载完验证一下文件:
# 确认文件存在且大小为几百 KB 量级(不是 0 字节) Get-Item .\oscdimg.exe | Select-Object Name, Length打出oscdimg.exe且 Length 在 300KB 左右,这一步就过了。如果 Invoke-WebRequest 抛网络异常,说明当前网络够不到官方域名,换浏览器或换台网络正常的机器下载同一个文件,拷到tiny11maker.ps1所在目录即可。脚本放在 Program Files 下时保存可能被只读权限拒绝,这种情况把整个目录挪到 D:\ 等可写位置再跑。
Step 3:重跑构建并确认 ISO 产出
用 64 位 PowerShell 以管理员身份打开,进入脚本目录,重跑 tiny11builder 完整构建:
# 本会话绕过执行策略,然后启动构建 Set-ExecutionPolicy Bypass -Scope Process .\tiny11maker.ps1 -ISO <已挂载ISO盘符> -SCRATCH <暂存盘盘符>走到 "Creating ISO image..." 阶段:你预放了文件的,终端会打oscdimg.exe already exists locally.;走 ADK 的,打Will be using oscdimg.exe from system ADK.。之后 oscdimg 开始写 ISO,进度条在动就基本稳了。如果还是Failed to download oscdimg.exe.,多半是脚本目录的写权限问题——把目录挪走重跑。
收尾:确认 tiny11.iso 真的生成了
脚本结束后,一条命令确认最终产物:
# 查看脚本目录下 ISO 是否生成、大小是否 GB 级 Get-Item .\tiny11.iso打出几 GB(通常 3~5GB)大小的tiny11.iso且无报错,这次构建就通了;另外脚本构建成功后会自动删掉脚本目录里的临时oscdimg.exe,这是正常清理行为,别当异常。
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考