- 从 iso 文件中提取出 install.wim 文件
- dism 解压 wim 文件到一个干净的 ntfs 分区或文件夹里
查看 wim 的 index id
1
| dism /Get-ImageInfo /ImageFile:"C:\Users\iuxt\Desktop\install.wim"
|
挂载镜像到一个空目录
1 2 3 4 5 6 7
| dism /Mount-Wim /WimFile:"C:\Users\iuxt\Desktop\install.wim" /Index:1 /MountDir:"F:\tmp"
# 保存并应用更新 dism /Unmount-Wim /MountDir:"F:\tmp" /Commit
# 不保存,并放弃,主要是为了删除 F:\tmp 里面的文件。 dism /Unmount-Wim /MountDir:"F:\tmp" /Discard
|
安装 Windows 更新补丁
1 2 3 4 5
| # 有ssu的可能需要安装多次。 dism /Image:"F:\tmp" /Add-Package /PackagePath:"F:\build_ltsc\LTSC 更新包\windows10.0-kb5017308-x64_2027053968a06948b45d139d95475ab4feee5654.msu"
dism /Image:"F:\tmp" /Get-Packages
|
⚠️ 如果忘记执行 /Commit,所有更改都会丢失。如果只想丢弃更改并卸载,则使用 /Discard 替代 /Commit。
清理冗余更新
1 2 3 4 5
| # 分析空间 Dism /Image:"F:\tmp" /Cleanup-Image /AnalyzeComponentStore
# 清理冗余更新的核心是使用 DISM /Cleanup-Image 命令。这个操作主要针对 WinSxS 文件夹,它会移除那些被新补丁替换掉的旧版本文件,从而为镜像“减负 Dism /Image:"F:\tmp" /Cleanup-Image /StartComponentCleanup /ResetBase
|
安装 winappx 软件包
1 2 3 4 5 6
| # 带许可证 Dism /Image:"F:\tmp" /Add-ProvisionedAppxPackage /PackagePath:"C:\Appx\MyApp.appx" /DependencyPackagePath:"C:\Appx\Microsoft.VCLibs.x64.14.00.appx" /LicensePath:"C:\Appx\License.xml" /Region:all
# 不带许可证 Dism /Image:"F:\tmp" /Add-ProvisionedAppxPackage /PackagePath:"F:\build_ltsc\Microsoft.HEVCVideoExtension_2.4.45.0_neutral_~_8wekyb3d8bbwe.AppxBundle" /SkipLicense /Region:all
|
其他常用命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| dism /Get-MountedWimInfo
里面还显示有挂载项。
这时候通常要修复清理:
dism /Cleanup-Wim
或者先看挂载状态:
dism /Get-MountedWimInfo
正确流程一般是:
dism /Get-MountedWimInfo
如果确认 F:\tmp 是挂载目录,并且不想保留修改:
dism /Unmount-Wim /MountDir:"F:\tmp" /Discard
卸载成功后,再删除空目录:
rmdir "F:\tmp"
|
制作成 iso 镜像
1 2 3 4 5 6 7 8
| robocopy.exe "D:" "F:\iso_tmp" /MIR /COPY:DAT /DCOPY:DAT /R:2 /W:2
del /f /q "F:\iso_tmp\sources\install.wim" del /f /q "F:\iso_tmp\sources\install.esd" copy /y "C:\Users\iuxt\Desktop\install.wim" "F:\iso_tmp\sources\install.wim"
"C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\amd64\Oscdimg\oscdimg.exe" -m -o -u2 -udfver102 -lLTSC_CUSTOM -bootdata:2#p0,e,b"F:\iso_tmp\boot\etfsboot.com"#pEF,e,b"F:\iso_tmp\efi\microsoft\boot\efisys.bin" "F:\iso_tmp" "F:\final_iso.iso"
|