我正在使用 Hyper-V Server 2019。(这是一个安装了 Hyper-V 角色的免费Windows Server 2019 Core软件包。默认情况下它完全基于文本 - 与常规 Windows Server 软件包一样,没有 GUI 桌面,除了 3rd派对解决方案不属于该问题。)
许多在服务器上设置各种内容的说明都假设图形工具可用。例如,文章为 Windows Admin Center 准备环境展示了如何使用其他版本的 Windows Server 中通常提供的图形工具执行步骤 2:启用文件服务器角色。很少有说明包含 Powershell 执行操作的方法。
我已经学会了使用 Powershell“cmdlet”来做各种事情,但我停留在上面的步骤 2 上。我想,我可以弄清楚如何安装我需要的功能;但是,为了将来的参考,我希望能够显示我感兴趣的项目。所以......
要显示所有功能的列表,我可以输入Get-WindowsFeature
。当然,这会带来一个长长的滚动列表!
我可以通过说明中的图表看到,我需要查看“文件和存储服务”下安装的内容。所以,我这样做:
Get-WindowsFeature | where {$_.InstallState -eq "Installed"}
(或者,或者Get-WindowsFeature | where Installed
:)
在 Powershell 5.1 中,返回:
我可以添加一个带有属性SubFeatures的Select-Object管道并得到:
但是,我真正想要的是第一个图像,但仅限于“文件和存储服务”部分及其所有子功能,无论InstallState值如何。
我已经看到-ExpandProperty
与数组类型结果一起使用的参数,但在 cmdlet 中的任何位置添加该参数只会给我一个关于该参数不可用或 SubFeatures 属性不可用的错误。但...
Get-WindowsFeature | Get-Member
显示属性如下:
SubFeatures Property string[] SubFeatures {get;}
我已尝试使用以下参数-ExpandProperty
:
Get-WindowsFeature | where {$_.InstallState -eq "Installed"} | Select-Object -ExpandProperty DisplayName, Name, InstallState, SubFeatures
Get-WindowsFeature | where {$_.InstallState -eq "Installed"} | Select-Object DisplayName, Name, InstallState, -ExpandProperty SubFeatures
Get-WindowsFeature | where {$_.InstallState -eq "Installed"} | Select-Object DisplayName, Name, InstallState | Select-Object -ExpandProperty SubFeatures
注意:我在这些上使用InstallState 的唯一原因是这样我没有得到巨大的滚动结果。在深入研究如何获取一个“文件和存储服务”部分之前,我正在尝试获取SubFeatures属性,因为我认为这需要我首先弄清楚SubFeatures ... 嗯...
另外,顺便说一句:Powershell 7在输出中有一个“显示名称”字段;然而,它是空白的。只有“名称”和“安装状态”字段有内容。有趣的是,我可以通过指定它来获取信息:Get-WindowsFeature | where Installed | Select-Object DisplayName, Name, InstallState
,但它没有漂亮的小[X]
标记;)
无论哪种方式,我正在寻找的是如何获取特定部分(此处为文件和存储服务)及其扩展SubFeatures
属性,以便我可以使用 Powershell 轻松查看该部分已安装或可用的内容。
哦,需要明确的是,我确实尝试过Get-WindowsFeature -Name FileAndStorage-Services
,它只返回一项(没有其子功能):
如果我使用 simple ,这是我输出的前几行Get-WindowsFeature
,包括以下File and Storage Services
部分: