改变Powershell输出

时间:2017-09-22 13:22:07

标签: powershell active-directory

我正在寻找一种方法来更改以下命令的当前输出,以便更容易阅读。

$list= get-content "c:\userlist.txt"
Foreach ($user in $list)
{
    Write-Host $user
    Get-ADPrincipalGroupMembership $user |select name |Where-Object {$_.name -like "*admin*"}
    write-host " "
}

当前输出如下:

user1

name                                                                                                                                                                                                                                
----                                                                                                                                                                                                                                
admin1
admin2                                                                                                                                                                                                                   

user2
admin3
admin4

我希望它显示如下或类似的东西,没有名称标题和额外的换行符。谢谢!

User1
admin1
admin2

User2
admin3
admin4

1 个答案:

答案 0 :(得分:1)

我认为这对你有用:

$list= get-content "c:\userlist.txt"
foreach ($user in $list)
{
    Write-Host $user
    Write-Host (Get-ADPrincipalGroupMembership $user | Where-Object {$_.name -like "*admin*"} | Select-Object -ExpandProperty name | Out-String) 
    Write-Host " "
}

我将Write-Host放在那里,使其与输出的其余部分保持一致。您必须使用-ExpandProperty而不是-Property(默认值)来删除列标题。 Out-String使输出按原样进入屏幕,而不是被解释为对象并转换为字符串。