使用Powershell启用/关闭Windows功能

接上一篇博客,依旧是需要制作安装包,需要开启系统的MSMQ功能。这里就用到了dism.exe

DISM全称是Deployment Image Servicing and Management(部署映像服务和管理),用于安装、卸载、配置和更新脱机 Windows(R) 映像和脱机 Windows 预安装环境 (Windows PE) 映像中的功能和程序包。

文件路径"C:WindowsSystem32Dism.exe"

注意:Dism运行需要管理员权限 

可使用 Dism.exe /?查看详细命令参数,Dism功能非常强大,这里我只介绍如何开启和关闭Windows功能。

如果需要详细的介绍,可以访问

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh824821(v=win.10)?redirectedfrom=MSDN

https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-8.1-and-8/hh825265%28v%3dwin.10%29

使用下面这个命令,可以查看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目录

原文地址:https://www.cnblogs.com/zhaotianff/p/11561330.html