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

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

文件路径"C:\Windows\System32\Dism.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功能列表

 dism /online  /Get-Features

运行以后,部分截图如下

我这里需要安装 消息队列,对应的功能名称是MSMQ-Container,MSMQ-Server。对应控制面板截图如下

输入以下命令

  Dism /Online /Enable-Feature /FeatureName:MSMQ-Container
  Dism /Online /Enable-Feature /FeatureName:MSMQ-Server

执行如下

安装完成后,就可以在控制面板看到如下结果,代表已经启用了

禁用Windows服务,把/Enable-Feature换成/Disable-Feature就行了。

注意,记得这里加上/NoRestart,否则会等待输入确认是否重启电脑,这样就不能自动化执行下面的命令了。

 Dism /Online /Disable-Feature /FeatureName:MSMQ-Container /NoRestart
Dism /Online /Disable-Feature /FeatureName:MSMQ-Server /NoRestart

卸载完成后, 再设置重启就行了

 shutdown -r -t 0

重启完就可以看到消息队列功能已经关闭了

这样就可以在制作安装包时,自动启用或禁用Windows功能了。

有的时候需要离线安装,可以运行以下 DISM 命令来安装MSMQ-Server:

从D:\sources获取安装文件,然后把映像装载到D:\offline,再开始执行安装。

 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安装镜像的"sources\sxs"目录下,名称是"microsoft-windows-netfx3-ondemand-package.cab"

假设Windows安装镜像解压的目录是D:\Windows,则可以使用以下命令安装Net35

DISM /Image:D:\offline /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\Windows\sources\sxs

注意:请先创建D:\offline目录

使用Powershell启用/关闭Windows功能的更多相关文章

  1. Windows10启用或关闭Windows功能一直显示请稍候

    1.运行service.msc打开服务列表,找到Windows Modules Installer服务进行重启.如果重启失败,可以重启电脑后再次启动该服务. 2.此时运行controller打开控制面 ...

  2. win7打开或关闭windows功能 提示“出现错误,并非所有的功能被更改”,管理员权限惹的祸

    2013-07-25 18:12:06 最近要用到windows的telnet功能,本来是很简单的事情,因为管理员权限的问题,花了不少时间,才发现是管理员权限惹的祸,更滑稽的是,自己一直以来都不是管理 ...

  3. cmd命令行模式开启或关闭 windows功能 (转载)

    1,用管理员身份运行cmd. 2,运行 dism /online  /Get-Features >C:\1.txt,这样会在C盘生成一个txt文件,文件内容是功能列表,可以对照“打开或关闭win ...

  4. WPF之模拟打开或关闭Windows功能

    用WPF模拟打开或关闭Windows功能的实现方法其实很简单,主要用递归判断当前节点的子节点和父节点的选中状态就行了. 一.效果演示 先看看效果图: 二.部分代码 xaml代码: <TreeVi ...

  5. win10上如何启用或禁用Windows功能

    Windows10上提供了很多的功能,比如打印服务.传真服务.媒体服务等,怎样启用或禁用某些Windows功能呢? 工具/原料   windows10 方法/步骤     点击左下角的Windows图 ...

  6. 安装sqlserver 的时候 报错:无法通过Windows功能控制面板自动安装或卸载Windows Server 角色和功能。

    无法安装以下功能:.NET Framework 3.5(包括.NET2.0和3.0) 无法通过Windows功能控制面板自动安装或卸载Windows Server 角色和功能. 若要安装Windows ...

  7. 用Powershell启用Windows Azure上的远程桌面服务

    [题外话] 某天不小心点了XX管家的自动修复,虽然及时点了取消也看到了远程桌面服务成功被关闭,但是忙完该干的事以后竟然忘记了这件事,在断开远程桌面服务之前也忘记再次打开.以至于之后几天一直以为Azur ...

  8. 安装SQL Server 2012过程中出现“启用windows功能NetFx3时出错”(错误原因、详细分析及解决方法)以及在Windows Server2012上安装.NET Framework 3.5的详细分析及安装过程

           问题:在服务器(操作系统为Windows server 2012)上安装SQL Server 2012的过程中,安装停留在下图所示的界面上,显示”正在启用操作系统功能NetFx3”随后出 ...

  9. Windows Server 2012启用Windows功能NetFx3时出错解决方法

    作者:冰点阳光 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址:http://baohua.me/operating-system/windows-server-2012- ...

随机推荐

  1. Java动态代理-实战

    Java动态代理-实战 只要是写Java的,动态代理就一个必须掌握的知识点,当然刚开始接触的时候,理解的肯定比较浅,渐渐的会深入一些,这篇文章通过实战例子帮助大家深入理解动态代理. 说动态代理之前,要 ...

  2. Mongoose 内置 CURD 方 法、扩展 Mongoose Model 的静态方法和 实例方法

    Mongoose 内置 CURD 方 法 Mongoose 内置 CURD 方 法文档地址:https://mongoosejs.com/docs/queries.html 常用的方法如下: Mode ...

  3. SpringMVC实现文件下载的两种方式及多文件下载

    1.传统方法 @RequestMapping("/download") public String download( String fileName ,String filePa ...

  4. Kibana自动关联ES索引

    原因: Kibana中关联ES索引需要手动操作,如果ES中索引较多(如每天生成),则工作量会比较大. 方法: 考虑使用Linux的cron定时器自动关联ES索引,原理是调用Kibana API接口自动 ...

  5. RSA后台签名前台验签的应用(前台采用jsrsasign库)

    写在前面 安全测试需要, 为防止后台响应数据返给前台过程中被篡改前台再拿被篡改后的数据进行接下来的操作影响正常业务, 决定采用RSA对响应数据进行签名和验签, 于是有了这篇<RSA后台签名前台验 ...

  6. Vintage_坏客户定义

    python信用评分卡建模(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_ca ...

  7. openwrt如何打开linux内核的CONFIG_DEVMEM选项?

    答: 直接在openwrt的make menuconfig中打开CONFIG_KERNEL_DEVMEM选项即可

  8. git clone或者git clone时遇到gnutls_handshake() failed: An unexpected TLS packet was received.如何处理?

    答: 直接将https修改为http即可, 如: $ git clone https://github.com/Jello_Smith/my-example.git ->  git clone ...

  9. Redis (error) NOAUTH Authentication required.

    首先查看redis设置密码没 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "" ...

  10. IfcEdge

    /* Generated By: IFC Tools Project EXPRESS TO JAVA COMPILER: Do not edit this file!! */ package ifc2 ...