如何在 powershell 中将一行输出变成多行输出?

如何在 powershell 中将一行输出变成多行输出?

这是我正在使用的命令:

PS U:\> Get-ADUser paul -properties memberof | fl memberof

我的输出如下:

memberof : {CN=WLAN-Allow,OU=Groups,OU=Users,OU=at,....}

所以我的问题是如何将我的单行输出格式化为类似列表的内容:

memeberof :

 - CN=WLAN-Allow
 - OU=Groups
 - OU=Users
 - OU=at*

答案1

我同意 Gerald 的观点,这个问题很模糊,您可以使用 Gerald 提供的代码列出成员中的每个条目。如果出于某种原因(我无法理解)您需要输出以显示结果集中的每个目录对象,那么这将做到这一点:

Get-ADUser paul -properties memberof |  select -ExpandProperty memberof | %{
    $x = $_.Split(',');
    foreach($y in $x) {
        if($y -like 'CN=*') {
            $y
        } else {
            "`t$y"
        }
    }
}

输出如下:

CN=Group One
        OU=Old AD Groups
        OU=Groups
        OU=GB
        DC=Company
        DC=net
CN=Group 2
        OU=Groups
        OU=Nested
        OU=GB
        DC=Company
        DC=net

答案2

您可以使用以下-ExpandProperty参数select

Get-ADUser paul -Properties memberof | Select -ExpandProperty memberof

结果将是列表中每一项占一行。我假设这就是你想要的,你的示例结果没有多大意义。

CN=WLAN-Allow,OU=Groups,OU=Users,OU=at
CN=Group 2,OU=...
CN=Group 3,OU=...

相关内容