接上一篇博客,依旧是需要制作安装包,需要开启系统的MSMQ功能。这里就用到了dism.exe
DISM全称是Deployment Image Servicing and Management(部署映像服务和管理),用于安装、卸载、配置和更新脱机 Windows(R) 映像和脱机 Windows 预安装环境 (Windows PE) 映像中的功能和程序包。
文件路径"C:WindowsSystem32Dism.exe"
注意:Dism运行需要管理员权限
可使用 Dism.exe /?查看详细命令参数,Dism功能非常强大,这里我只介绍如何开启和关闭Windows功能。
如果需要详细的介绍,可以访问
使用下面这个命令,可以查看Windows功能列表
1 dism /online /Get-Features
运行以后,部分截图如下
我这里需要安装 消息队列,对应的功能名称是MSMQ-Container,MSMQ-Server。对应控制面板截图如下
输入以下命令
1 Dism /Online /Enable-Feature /FeatureName:MSMQ-Container
1 Dism /Online /Enable-Feature /FeatureName:MSMQ-Server
执行如下
安装完成后,就可以在控制面板看到如下结果,代表已经启用了
禁用Windows服务,把/Enable-Feature换成/Disable-Feature就行了。
注意,记得这里加上/NoRestart,否则会等待输入确认是否重启电脑,这样就不能自动化执行下面的命令了。
1 Dism /Online /Disable-Feature /FeatureName:MSMQ-Container /NoRestart 2 Dism /Online /Disable-Feature /FeatureName:MSMQ-Server /NoRestart
卸载完成后, 再设置重启就行了
1 shutdown -r -t 0
重启完就可以看到消息队列功能已经关闭了
这样就可以在制作安装包时,自动启用或禁用Windows功能了。
有的时候需要离线安装,可以运行以下 DISM 命令来安装MSMQ-Server:
从D:sources获取安装文件,然后把映像装载到D:offline,再开始执行安装。
1 DISM /Image:D:offline /Enable-Feature /FeatureName:MSMQ-Server /All /LimitAccess /Source:D:sources
使用 /All 启用指定的功能的所有父功能。
使用 /LimitAccess 以防止 DISM 与 Windows Update/WSUS 联系。
使用 /Source 指定离线安装包的目录
一般需要离线安装的,可能就是.Net Framework 3.5了。这个安装包的位置位于Windows安装镜像的"sourcessxs"目录下,名称是"microsoft-windows-netfx3-ondemand-package.cab"
假设Windows安装镜像解压的目录是D:Windows,则可以使用以下命令安装Net35
DISM /Image:D:offline /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:Windowssourcessxs
注意:请先创建D:offline目录