powershell - 为什么在 Windows Server 2012 r2 上的 PowerShell ISE 中运行 Get-WindowsCapability 时出现错误?
问题描述
我在 Windows Server 2012 r2 机器上运行 PowerShell ISE。当我运行以下命令时:
Get-WindowsCapability
我收到以下错误:
Get-WindowsCapability :术语“Get-WindowsCapability”未被识别为 cmdlet、函数、脚本文件或可运行程序的名称。检查名称的拼写,或者如果包含路径,请验证路径是否正确并重试。在行:1 字符:1
- 获取-WindowsCapability
+ CategoryInfo : ObjectNotFound: (Get-WindowsCapability:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException
我是否缺少 PowerShell 包?如何让这个功能发挥作用?
谢谢,约翰B
解决方案
Get-WindowsCapability
是DISM
模块中的一个 cmdlet。
DISM 与 Server 2012 R2 一起本地部署,但根据 PowerShell 的版本或其他配置设置(例如您的 Windows 分区的设置位置或图像特定的自定义),有时我们发现我们需要在使用它之前导入模块,就像这样:
Import-Module DISM
#or, to see which commands are in the module
Import-Module DISM -Verbose
如果这失败了,请仔细检查它是否以某种方式被删除。例如,当您运行以下命令时是否会出现?
Get-Module DISM -ListAvailable
如果它没有出现,那么似乎该模块已被删除,并且可能是 Windows 组件。不用担心,我们也可以通过安装此处找到的 Windows 自动部署工具包 (ADK) 将其与模块一起恢复。
更新:您也可以在此路径下找到模块
C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\
.
要导入的模块文件将位于x86\DISM
文件夹下或x64\DISM
,并命名为dism.psm1
推荐阅读
- web - 在浏览器中显示 GStreamer 视频
- pytorch - 使用视差图扭曲图像以进行立体匹配
- cocoscreator - 是否可以在 cocos creator 中为鼠标光标添加自定义 Sprite
- mysql - Expressjs+Mysql=SequelizeDatabaseError: 表太多;MySQL 在一个连接中只能使用 61 个表
- ms-access - MS Access 一次转置一行
- flutter - 如何像照片中一样对齐 UI
- spring-boot - 使用 axios 在 React 中实现搜索栏
- tensorflow - 在 virtualenv 中安装 tensorflow 后,vscode 说找不到模块 [ubuntu20.04]
- python - Python 导入脚本不起作用(错误:找不到模块)
- java - 如何在字符串中打印第一个最少重复字符