[TOC]
章节:部署映像服务和管理工具
描述:DISM(Deployment Image Servicing and Management)就是部署映像服务和管理,用于安装、卸载、配置和更新脱机 Windows(R) 映像和脱机 Windows 预安装环境 (Windows PE) 映像中的功能和程序包;
命令参数:
DISM.exe [dism_options] {Imaging_command} [<Imaging_arguments>]
DISM.exe {/Image:<path_to_offline_image> | /Online} [dism_options]
{servicing_command} [<servicing_arguments>]
#DISM 选项:
/English - 用英文显示命令行输出。
/Format - 指定报告输出格式。
/WinDir - 指定 Windows 目录的路径。
/SysDriveDir - 指定名为 BootMgr 的系统加载程序文件的路径。
/LogPath - 指定日志文件路径。
/LogLevel - 指定日志(1-4)中所示的输出级别。
/NoRestart - 取消自动重新启动和重新启动提示。
/Quiet - 取消除错误消息之外的所有输出。
/ScratchDir - 指定暂存目录的路径。
#常用命令
/Capture-Image - 将驱动器的映像捕获到新的 WIM 文件中,捕获的目录包含所有子文件夹和数据。
/CaptureDir - 指定捕获目录。
#通用映像处理命令: /imagefile:"C:\xxx.wim"
/Mount-Image - 从 WIM 或 VHD 文件装载映像。
/Commit-Image - 保存对装载的 WIM 或 VHD 映像的更改。
/Unmount-Image - 卸载已装载的 WIM 或 VHD 映像。
/Remount-Image - 恢复孤立的映像装载目录。
/Cleanup-Mountpoints - 删除与损坏的已安装映像关联的资源。
/List-Image - 显示指定映像中的文件和文件夹的列表。
/Delete-Image - 在具有多个卷映像的 WIM 文件中删除指定的卷映像。
/Split-Image - 将现有 .wim 文件拆分为多个只读拆分 WIM (SWM) 文件。
/Apply-Image - 应用一个映像。
- /ApplyDir - 指定应用目录。
/Append-Image - 将新映像添加到 WIM 文件中。(增量备份)
/Export-Image - 将指定映像的副本导出到其他文件。
/Capture-Image - 将驱动器的映像捕获到新的 WIM 文件中。捕获的目录包含所有子文件夹和数据
/Get-ImageInfo - 显示有关 WIM 或 VHD 文件中映像的信息。
/Get-MountedImageInfo - 显示有关安装的 WIM 和 VHD 映像的信息。
#WIM 命令: /wimfile:"C:\xxx.wim"
/Apply-CustomDataImage - 冻结自定义数据映像中包含的文件。
/Capture-CustomImage - 将自定义设置捕获到 WIMBoot 系统上的增量 WIM 文件中,捕获的目录包括所有子文件夹和数据。
/Get-WimInfo - 显示有关 WIM 文件中的映像的信息。
/Mount-Wim - 从 WIM 文件挂载映像。
/Commit-Wim - 保存对挂载的 WIM 映像的更改。
/Unmount-Wim - 卸载挂载的 WIM 映像。
/Remount-Wim - 恢复孤立的 WIM 挂载目录。
/Cleanup-Wim - 删除损坏的WIM映像关联的挂载资源。
/Get-WIMBootEntry - 显示指定磁盘卷的WIMBoot 配置项。
/Get-MountedWimInfo - 显示显示挂载的 WIM 映像的信息。
#映像规格:
/Online - 以正在运行的操作系统为目标。
/Image - 指定脱机 Windows 映像的根目录的路径。
#FFU COMMANDS:
/Capture-Ffu - 将物理磁盘映像捕获到新的FFU文件中。
/Apply-Ffu - 应用.ffu映像。
/Split-Ffu - 将一个现有的. FFU文件分割为多个read-onlysplit FFU文件。
基础命令实例:
# 1.获取wim文件信息
$dism.exe /get-wiminfo /wimfile:"C:\install.wim"
# 映像的详细信息: c:\wim\sources\install.wim
# 索引: 1
# 名称: Windows 10 教育版
# 描述: Windows 10 教育版
# 大小: 14,780,257,821 个字节
# 索引: 2
# 名称: Windows 10 企业版
# 描述: Windows 10 企业版
# 大小: 14,780,328,567 个字节
# 2.将install.wim文件 索引1 /名称 目录 挂载到c:\1文件夹中
$dism /Mount-Image /ImageFile:输入install.wim的路径 /Name:" Windows 10 企业版" /MountDir:C:\winpe\offline
$dism /mount-image /imagefile:C:\winpe\media\sources\boot.wim /index:1 /mountdir:C:\winpe\mount
$dism /mount-wim /wimfile:"C:\install.wim" /index:1 /MountDir:c:\1
# 正在安装映像
# [==========================100.0%==========================]
# 操作成功完成。
# 3.查看映像的文件列表
$dism /list-image /imagefile:"c:\wim\sources\install.wim" /index:1 | more
# 部署映像服务和管理工具 版本: 10.0.18362.1
# \$Recycle.Bin\
# \PerfLogs\
# \Program Files\
# \Program Files\desktop.ini
# \Program Files\Common Files\
# \Program Files\Common Files\microsoft shared\
# \Program Files\Common Files\microsoft shared\ink\
# \Program Files\Common Files\microsoft shared\ink\Alphabet.xml
# 4.查看已经挂载的镜像
$dism /get-mountedwiminfo
# 安装的映像:
# 安装目录: f:\Win
# 映像文件: f:\2020-7-3.wim
# 映像索引: 1
# 安装的读/写: 是
# 状态: 无效
# 操作成功完成。
# 6.使用完后将挂载的文件保存并卸载映像(特别注意,在卸载前将挂载目录关闭,否则将出现错误:)
$dism /unmount-wim /mountDir:C:\winpe /commit #提交更改
$dism /Unmount-Image /MountDir:C:\offline /Commit
$dism /unmount-wim /mountdir:D:\win /discard #卸载映像并且丢弃修改
# 7.清除所有挂载点
$dism /Cleanup-Wim
# 指向 C:\winpe\mount 的过时安装项已删除
# 正在扫描驱动器 C 上的过时文件
# 操作成功完成。
# 8.查看当前系统信息,以及查看当前系统是否可升级,以及可升级版本:
$dism /online /Get-CurrentEdition
# 版本: 10.0.18362.1
# 映像版本: 10.0.18362.30
# 当前版本为:
# 当前版本 : Professional
$dism /online /Get-TargetEditions
# 可以升级的版本:
# 目标版本 : ProfessionalEducation
# 目标版本 : ProfessionalWorkstation
# 目标版本 : Education
# 目标版本 : ProfessionalCountrySpecific
# 目标版本 : ProfessionalSingleLanguage
# 目标版本 : ServerRdsh
# 目标版本 : IoTEnterprise
# 目标版本 : Enterprise
# 9.开启/关闭系统相关主机功能功能
$dism /online /Get-Features|more #查看所有功能
# 程序包功能列表 : Microsoft-Windows-Foundation-Package~31bf3856ad364e35~amd64~~10.0.18362.1
# 功能名称 : Printing-PrintToPDFServices-Features
# 状态 : 已启用
$dism /online /Disable-Feature /FeatureName:XXX #禁用指定功能
$dism /online /Enable-Feature /FeatureName:XXX #启用指定功能
# 10.将驱动程序以及证书添加到该映像(在装载后)
dism /Image:C:\test\offline /Add-Driver /Driver:C:\drivers\mydriver.inf #单个驱动
dism /Image:C:\test\offline /Add-Driver /Driver:c:\drivers /Recurse #文件夹及其所有子文件夹安装所有驱动程序(常)
dism /Image:C:\test\offline /Add-Driver /Driver:C:\drivers\mydriver.inf /ForceUnsigned #使用 /ForceUnsigned 来安装未签名的驱动程序
#看 Windows 映像中的第三方驱动程序 (.inf) 文件列表、
dism /Image:C:\test\offline /Get-Drivers
# 驱动程序被添加到 Windows 映像中并命名为 Oem*.inf。这样做是为了确保添加到计算机中的新驱动程序命名的唯一性。
# 例如文件 MyDriver1.inf 和 MyDriver2.inf 将重命名为 Oem0.inf 和 Oem1.inf。
dism /Image:C:\test\offline /Remove-Driver /Driver:OEM1.inf /Driver:OEM2.inf # 从映像中删除特定驱动程序。
# 11.用 DISM 将应答文件应用到装载的 Windows 映像
dism /Image:C:\test\offline /Apply-Unattend:C:\answerfiles\myunattend.xml
# 12.通过本地镜像离线安装.NET 3.5
dism.exe /online /enable-feature /featurename:NetFX3 /Source:D:\sources\sxs
补充F&Q: 问题1.上面挂载过一次后,再次挂载不能挂载,显示错误: 0xc1420127,已经在指定 WIM 中装载指定的映像以进行读/写访问。 原因:封装后会把镜像挂载的目录进行卸载,由于可能镜像挂载的目录正处于打开的状态,因此不能卸载完成,然后自己就直接退出了,下次再次使用此目录就会因为仍在占用中而出现错误。 解决方法:先查看现在仍在使用的目录有哪些,然后对其进行卸载。
$ dism /get-mountedwiminfo
# 安装的映像:
# 安装目录: D:\win
# 映像文件: D:\BOOT.WIM
# 映像索引: 1
# 安装的读/写: 是
# 状态: 无效
# 操作成功完成。
$dism /unmount-wim /mountdir:D:\Win /discard
# 映像文件 : D:\BOOT.WIM
# 映像索引 : 1
# 正在卸载映像
# [==========================100.0%==========================]
描述: 用 DISM 命令进行系统备份与还原不需要任何第三方软件,备份后的镜像文件格式为wim,备份文件占用空间小(比 Ghost 小很多),而且可进行增量备份。 缺陷:不支持热备份,备份与还原需要在 Win7 以上的 PE 或 第二系统中进行。 注意: 初始备份耗时较长,可以在没有原始备份文件情况下使用安装镜像中的 install.wim 进行增量备份,然后提取出此次备份即可
基础示例:
#1)初始备份(例如:把 C 分区的系统备份到 D 分区的 Win8BF 文件夹中,备份文件名为 Win8Pro.wim):
dism /Capture-Image /ImageFile:D:\Win8BF\Win8Pro.wim /CaptureDir:C:\ /Name:Win8Pro-1 /Description:0000-00-00
#2)增量备份(例如:把 C 分区的系统增量备份到 D:\Win8BF\Win8Pro.wim 中):
#重要事项: 确保有足够的磁盘空间可用于运行 /Append-Image 选项。如果在附加映像期间磁盘空间不足,则可能会损坏 .wim 文件。
dism /Append-Image /ImageFile:D:\Win8BF\Win8Pro.wim /CaptureDir:C:\ /Name:Win8Pro-2 /Description:0000-00-00
#3)系统还原(例如:把 D:\Win8BF\Win8Pro.wim 中第二次备份还原到 C 分区):
dism /Apply-Image /ImageFile:D:\Win8BF\Win8Pro.wim /Index:2 /ApplyDir:C:\
#4)例如在 PE 中把 Win8Pro 安装到 C 分区(设 Win8ISO 用虚拟光驱加载的盘符为 E):
dism /Apply-Image /ImageFile:E:\sources\install.wim /Index:1 /ApplyDir:C:\
#由于 Windows 系统原始(WIM 映像)中没有启动引导文件,需要添加启动引导:
bcdboot C:\windows /s C: /l zh-cn
#如果是把 Windows 8 安装到 USB 设备中作 Windows To Go,也应添加启动引导:
bcdboot X:\windows /s X: /l zh-cn /f ALL (X为 USB 设备的盘符)
#5) 检查映像是否可损坏、修复
dism /Online /Cleanup-Image /ScanHealth #扫描映像来检查损坏
dism /Online /Cleanup-Image /CheckHealth #检查映像以查看是否有检测到损坏(其依赖上一条命令)
#若扫描出计算机中的不一致情况,检测到系统的损坏,并报告映像是状态良好、可以修复,就可以用 /RestoreHealth 参数进行修复。
DISM /Online /Cleanup-image /RestoreHealth #(注意需要联网)把那些不同的系统文件还原成官方系统源文件,其他的第三方软件和用户设置完全保留比重装好多了
dism /Online /Cleanup-Image /RestoreHealth /Source:c:\test\mount\windows /LimitAccess #自定义源修复
注意事项:
描述:系统准备工具(System Preparation - Sysprep)与其他部署工具一直使用,进入审核模式并可以将系统重新进入到OOBE全新部署阶段;
作用:
命令配置:
System过程概述:
用法参数:
#USAGE
sysprep.exe [/quiet] [/generalize] [/audit | /oobe] [/reboot | /shutdown | /quit] /unattend:<filename> /mode:vm
#parameter
/audit:强制计算机下次启动时进入审核模式。另外如果要随sysprep使用应答文件,为auditSystem和auditUser传送配置的任何设置都会被处理;
/oobe:强制计算机在下次启动时加载欢迎使用Windows。另外如果要随sysprep使用应答文件为oobeSystem传送配置的任何设置都会在欢迎使用;
/generalize :通用如果要打包部署到在其他不同型号机器上运行则需要进行指定;
/reboot | /shutdown | /quit : 运行sysprep后重启系统/关闭系统/退出程序
/quiet : 安静模式不显示确认消息。当使用/unattend参数自动运行sysprep时,使用此参数
/unattend : answerfile sysprep运行时应用指定应答文件中的配置的设置,只有在/oobeSystem、/auditSystem、/auditUser传送中指定的设置能够应用
/mode:vm : Windows(R) 8 的新增内容。一般化虚拟硬盘 (VHD),这样可以将其部署为相同虚拟机 (VM) 或虚拟机监控程序上的 VHD。VM 重新启动后该 VM 可以引导到 OOBE
使用案例:
#示例1:通用化一个系统,并重新启动到欢迎使用Windows
Sysprep /oobe /generalize /reboot
#示例2:通用化一个系统并重新启动到审核模式 ,设置完成后再次在sysprep选项中选择为“进入系统全新体验”和“重新启动”,以提示在审核模式中进行定制后必须重启。
Sysprep /audit /generalize /reboot
#示例3:Windows 8 包括 Sysprep VM 模式。VM 模式将会一般化将其部署为相同虚拟机或虚拟机监控程序上的 VHD 的 VHD
#该模式支持虚拟机的快速部署。只有从虚拟机内部运行 VM 模式时,该模式才受支持
Sysprep /generalize /oobe /mode:vm
注意事项:
参考来源: https://technet.microsoft.com/zh-cn/library/dn938331(v=vs.85).aspx https://technet.microsoft.com/zh-cn/library/dn938330(v=vs.85).aspx