为什么在Windows Server 2012 r2上的PowerShell ISE中运行Get-WindowsCapability时出现错误?

问题描述

我正在Windows Server 2012 r2计算机上运行PowerShell ISE。 当我运行以下命令时:

Get-WindowsCapability

我收到以下错误

Get-WindowsCapability:术语“ Get-WindowsCapability”不是 识别为cmdlet,函数,脚本文件或可操作文件名称 程序。检查名称的拼写,或者是否包含路径, 验证路径正确,然后重试。在第1行:char:1

  • Get-WindowsCapability
  •   + CategoryInfo          : ObjectNotFound: (Get-WindowsCapability:String) [],CommandNotFoundException
      + FullyQualifiedErrorId : CommandNotFoundException
    

我是否缺少PowerShell软件包? 如何使用此功能

谢谢JohnB

解决方法

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)found here将其与该模块一起使用。

更新:您也可以在此路径下找到模块

C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\
要导入的模块文件将位于x86\DISM文件夹或x64\DISM下,并命名为dism.psm1