Powershell:Get-Mailbox,将多值GrantSendOnBehalfTo拆分为其'自己的行

时间:2018-03-26 16:26:01

标签: powershell exchange-server-2010

我尝试使用'代表发送'邮箱的权利。如果只有一个帐户,则结果很好,但是当有多个帐户时,这些值会连接成一个字符串,默认分隔符为空格。即使我使用split with line-feed作为分隔符,它仍然被视为由换行分隔的单个字符串。这是我目前的代码:

get-mailbox "Sales Dept" | select identity,displayname,@{l='SendOnBehalfOf';e={$_.GrantSendOnBehalfTo -join "`n"}}

无论我使用拆分还是加入,我都会不断获得此输出的变体:

Identity            Displayname         SendOnBehalfOf
domain\Sales Dept   Sales Dept          User1
                                        User2
                                        User3
                                        User4

但我需要的是每个用户都是这样的:

Identity            Displayname         SendOnBehalfOf
domain\Sales Dept   Sales Dept          User1
domain\Sales Dept   Sales Dept          User2
domain\Sales Dept   Sales Dept          User3
domain\Sales Dept   Sales Dept          User4

我如何得到它?

1 个答案:

答案 0 :(得分:1)

由于您的SendOnBehalfOf属性条目最多,因此您要迭代它:

#Requires -Version 4
Get-MailBox 'Sales Dept' -PipelineVariable 'Sales' |
    ForEach-Object -MemberName 'GrantSendOnBehalfTo' |
    Select-Object -Property @(
        @{N = 'Identity';       E = { $Sales.Identity }}
        @{N = 'DisplayName';    E = { $Sales.DisplayName }}
        @{N = 'SendOnBehalfOf'; E = { $_ }}
    )