以命令方式启用或关闭Windows 10功能
2020-11-09童乐安
童乐安
在Windows 10控制面板的“程序和功能”中,包含启用或关闭系统内置功能组件的模块,通常这些模块的开关可以通过手动操作来控制(图1)。但是,如果无法直接开启“程序和功能”时,比如在程序设计中需要控制这些组件的开关,那就需要用命令行的方式来进行相应的控制了。
1.在命令提示符窗口中进行操作
以命令提示符窗口启用或关闭系统功能,或者获取有关功能的信息,需要使用DISM(部署映像服务和管理)工具来实现。DISM工具对应于Windows中的DISM.EXE程序,位于Windows7/8/10的“C:\Windows\System32”文件夹中。
首先以管理员模式打开命令提示符窗口。这里介绍一种快速进入的方法:点击开始按钮并输入CMD,然后按下Ctrl+Shift+Enter组合键,即可进入管理员命令提示符窗口。
进入管理员命令提示符窗口后,首先使用如下命令获取系统当前可以启用或已经启用的功能完整列表(图2):
DISM/online/get-features/format:table|more
在“状态”一栏中,显示“已启用”为当前有效的功能模块,而显示为“已禁用”的功能模块为当前可以开启的功能模块。由于功能比较多,一屏不能完全显示,按下空格键可显示后续内容(图2)。
在上述命令中,“/online”参数表示操作目标为本地系统。“/format:table”可选项表示显示方式列表形式。末尾的“|more”也是可选项,表示信息分页显示。
如果要将列表显示信息输出到一个文本文件中,只需在该命令之后添加“>C:\ dism_Features.txt”即可,这样所有信息都将被保存在dism_Features.txt文件中,该文件名用户可自定义。
如果需要只显示已启用或者已禁用的功能列表,可分别使用如下命令:
DISM/online/get-features/format:table/English|find"Enabled"|more
DISM/online/get-features/format:table/English|find"Disabled"|more
注意,命令中的启用关键词Enabled和禁用关键词Disabled,均需要以半角双引号引用,且首字母要大写,否则将不显示任何内容。同时要添加英文格式开关“/English”,否则也无法显示任何结果(图3)。
在获得了功能的名称和状态之后,要启用或关闭其中的某項Windows功能,只需将下面两条命令中的“[feature name]”改为要启动或关闭的相应功能名称,然后执行命令即可:
DISM/online/Enable-Feature/FeatureName:[featurename]
DISM/online/Disable-Feature/FeatureName:[featurename]
2.在PowerShell窗口中进行操作
首先右击开始按钮,并选择以管理员身份运行PowerShell。如果要查看系统上已启用或已禁用的所有功能列表,可执行如下命令(图4):
get-windowsoptionalfeature -online |ft | more
与DISM一样,online参数告诉命令在本地系统上工作,而可选的ft参数表示以列表的形式显示结果,若有更多的信息则将列表拆分为分页显示。
如果要将列表按筛选的方式以已启用或已禁用的功能列表分别显示,只需使用如下两条命令即可(图5):
get-windowsoptionalfeature -online |where state -like disabled* | f t | more
get-windowsoptionalfeature -online |where state -like enabled* | f t | more
参数说明:where语句检查功能的状态并相应地筛选列表。使用like和*通配符的原因是某些功能与单词不完全匹配。例如,NetFx3的默认状态为DisabledWithPayloadRemoved,这意味着该功能被禁用,其文件不在系统上。因此,只有使用“-like disabled”才不会显示在列表中。
使用PowerShell命令,还可以筛选具有特性关键词的功能列表。例如,下面的示例将显示名称中包括“hyper-v”的功能:
get-windowsoptionalfeature -online |where featurename -like *hyper-v* | f t
以下命令将获取名称中包含“media”的所有功能的信息:
get-windowsoptionalfeature -online-featurename *media*
如果要启用或关闭某项W i n d ows功能,只需用功能名称替换如下命令中的“[fe at u r ename]”,然后执行该命令即可:
enable-windowsoptionalfeature-online-featureName[featurename]-all
disable-windowsoptionalfeature-online-featureName[featurename]
可选的-all参数会自动添加指定功能所属的其他所有子功能。
通过在同一行上使用两个命令,可以同时启用或禁用多个功能。例如:
get-windowsoptionalfeature-online-featurename*hyper-v*|enable-windowsoptionalfeature-online-norestart
上面的命令首先筛选名称中带有“Hyper-V”的所有功能,然后,这些功能名称通过管道参数“|”传输到后面的enable命令,以便在不重新启动的情况下逐个启用这些功能。使用上述复合命令的效果是可以一次性启用七个Hyper-V功能。