首页 > 解决方案 > 为什么在 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

标签: powershellwindows-server-2012-r2

解决方案


Get-WindowsCapabilityDISM模块中的一个 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


推荐阅读