我开始使用 Windows Server 2016,并且使用的是 CLI 版本。我想确定我的计算机上安装了哪些功能。我尝试通过以下方式查看内容:
Get-WindowsFeature
显然我不喜欢手动阅读所有内容来查看它是否已安装。所以我只想列出实际安装的内容。
我尝试使用以下命令执行此操作:
Get-WindowsFeature | Where-Object {$_."install state" -like "Installed"}
这什么都没有返回(请注意,当我查看所有内容时,已经安装了模块)。当我尝试运行下面的命令时,我实际上得到了返回的内容:
Get-WindowsFeature | Where-Object {$_."name" -like "dns"}
我做错了什么?是命令使用错误吗Where-Object
?“安装状态”的底层名称有什么不同吗?
答案1
我正在尝试确定我的计算机上安装了哪些功能。
使用以下 PowerShell 命令:
此 PowerShell 单行命令将导入 ServerManager 模块并显示当前已安装的 Windows 角色和功能。
Import-module servermanager ; Get-WindowsFeature | where-object {$_.Installed -eq $True} | format-list DisplayName
如果要仅返回特定角色或功能是否已安装的 True 或 False,您可以使用以下命令(以 Hyper-V 角色为例):
Import-module servermanager ; (Get-WindowsFeature -name hyper-v).Installed
有关详细信息,请参阅:For more information, see: http://technet.microsoft.com/en-us/library/cc732757.aspx
答案2
发送命令的输出Format-Custom
总是可以帮助您确定所查找的属性名称。
在这种情况下:
Get-WindowsFeature | Where-Object {$_.InstallState -like "Installed"}
...将解决您的问题。