tiny11builder 报 oscdimg.exe not found?三步配通 ISO 构建工具链
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
故障现场
你跑 tiny11builder,构建日志一路绿到"Creating ISO image...",然后屏幕弹出一句oscdimg.exe not found,终端直接断在这一步,脚本目录里翻来覆去就是没有tiny11.iso。别急着重跑,十有八九是 ISO 构建工具链没配对。先花两分钟把工具链摸清楚,比反复点"运行"省事得多。
它到底在流程里干什么
oscdimg.exe干的是整条构建链的最后一环:tiny11maker.ps1 前面几十分钟都在删组件、改注册表、压缩镜像,最后才轮到它把整理好的文件树压成带引导区的可启动 ISO。它相当于打包流水线末端的封口机,箱子都装好了,没它合不上盖——前面全部白干。所以只要日志卡在"Creating ISO image...",基本可以跳过前面那些步骤,直接查工具本身。
逐步排查工具链
先确认 ADK 装没装
ADK 体积不小,而且只有勾选了部署工具组件才会带oscdimg.exe,所以先看目录在不在。这条命令就是问一句"ADK 的部署工具目录存在吗":
Test-Path "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg"如果你看到True,说明系统里已有 ADK 工具链,可以跳过下载直接走后面"以后会反复构建"那节;如果看到False,说明这台机器没有 ADK 工具链,脚本会走自动下载逻辑,继续往下看。
再确认 oscdimg.exe 到底在哪
脚本的找工具顺序很直白:ADK 目录存在就用 ADK 里的oscdimg.exe,否则就在脚本目录找本地副本,没有就现场下载一份。这条命令能告诉你文件真实落在哪里:
Get-ChildItem "C:\Program Files (x86)\Windows Kits" -Recurse -Filter "oscdimg.exe" | Select-Object FullName如果你看到一行完整路径,说明 ADK 已经带了它,记下路径备用;如果什么都没看到,说明 ADK 里根本没有这个工具——可能你装的是不含部署工具的 ADK,那就回到上一步重新确认。
还没好就查脚本目录能不能写
自动下载会把oscdimg.exe放进脚本所在目录,目录写不进去,下载就会失败,构建正好卡在这一步报错。下面两行是"写个测试文件再删掉",用来验目录权限:
New-Item -Path ".\_wtest" -Value 1 -Force | Out-Null Remove-Item ".\_wtest"如果两条都安静跑完,说明目录可写;如果报错"对路径的访问被拒绝",关掉当前窗口,用管理员身份重新打开 PowerShell 再试——没管理员权限,后面下载必挂。
最后看一眼 scratch 盘剩余空间
scratch 盘要装下展开的临时镜像,加上最后输出的 ISO,空间不够的话构建会在打包前就挂掉。查一下目标盘还剩多少:
Get-CimInstance Win32_LogicalDisk | Select-Object DeviceID, @{N='FreeGB';E={[math]::Round($_.FreeSpace/1GB)}}如果剩余空间在 20 GB 以下,建议换一块大一点的盘,重新用-SCRATCH指定过去。
两条落地路径
偶尔出个镜像就走第一条,每周都折腾就走第二条。
只想最快出一次镜像。用管理员 PowerShell 进到脚本目录,跑构建入口:
.\tiny11maker.ps1 -ISO E -SCRATCH D把E、D换成你实际挂载的 Windows 11 ISO 盘符和 scratch 盘符。没装 ADK 的话,脚本会打印ADK folder not found. Will be using bundled oscdimg.exe,然后自己下载oscdimg.exe到脚本目录接着干活。跑完这条,你应看到脚本目录里出现tiny11.iso,日志停在"Creation completed",且本地临时下载的oscdimg.exe已被脚本自动清掉。
以后会反复构建。去 Microsoft 下载站拿 Windows ADK 安装程序,安装界面勾选 Deployment Tools 组件,装完用上面第一条命令复查目录是否为True。跑一次完整构建后,日志里应打印Will be using oscdimg.exe from system ADK——这就是你的自检句,出现这句就说明以后每次构建都不用再下载,版本也跟随 ADK 自动保持最新。
自检清单
✅ 日志明确打印了工具来源:Will be using oscdimg.exe from system ADK或bundled oscdimg.exe二选一 ✅ 若走下载路线,oscdimg.exe为正常大小的 exe,而不是只有几 KB 的报错页 ✅ 脚本目录出现tiny11.iso,体积大致 3–5 GB ✅ scratch 盘上的tiny11、scratchdir临时目录已被清理,空间恢复
踩坑备忘
ADK 路径拼错变量— 脚本用$hostarchitecture拼 ADK 路径,个别会话下该变量为空,路径就拼不成;脚本不会报错而是静默 fallback 去下载,发现日志走了下载分支时先核对这个变量($hostarchitecture)有没有值。下载超时或半截文件— 公司代理或网络原因让Invoke-WebRequest拿不到完整文件;手动从微软符号源下载oscdimg.exe放进脚本目录,脚本检测到文件已存在就会跳过下载。脚本没跑在管理员会话— 普通权限写不进受保护目录,下载直接失败;右键 PowerShell 选"以管理员身份运行"。ADK 没勾选部署工具— 只装了 ADK 主程序,Oscdimg目录压根不存在;重装并在安装器里勾选 Deployment Tools。架构没对上— arm64 机器要对应arm64子目录,别拿 x64 路径去套;跑通之后出 ISO 就不会再卡在这一步了。
【免费下载链接】tiny11builderScripts to build a trimmed-down Windows 11 image.项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考