列出Powershell中的所有服务器功能/角色

时间:2013-11-01 18:52:10

标签: powershell

所以我有以下代码输出所有安装的功能和角色:

Import-Module ServerManager
$Arr = Get-WindowsFeature | Where-Object {$_.Installed -match “True”} | Select-Object -Property Name
$loopCount = $Arr.Count
For($i=0; $i -le $loopCount; $i++) {
    Write-Host $Arr[$i]
}

然而,输出是:

@{Name=Backup-Features}
@{Name=Backup}
@{Name=Backup-Tools}

如何摆脱@{}

3 个答案:

答案 0 :(得分:7)

使用Select -ExpandProperty Name代替Select -Property Name

或者,我建议使用Foreach-Object而不是C风格的循环。

Import-Module ServerManager
Get-WindowsFeature | 
    Where-Object {$_.Installed -match “True”} | 
    Select-Object -ExpandProperty Name |
    Write-Host

或者

Import-Module ServerManager
Get-WindowsFeature | 
    Where-Object {$_.Installed -match “True”} | 
    ForEach-Object {
        $_.Name | Write-Host
    }

答案 1 :(得分:6)

一个漂亮的衬垫怎么样?

Get-WindowsFeature | ? {$_.Installed -match “True”} | Select -exp Name

答案 2 :(得分:1)

如果您可以接受完全静态的解决方案,这应该有效:

Write-Host $Arr[$i].Substring(2, $Arr[$i].Length-3)

如果您正在寻找专门针对这些符号的解决方案并将其删除,则会有所不同。根据你的问题,这应该没问题。