我收到以下命令:
Get-Mailbox | Get-MailboxPermission | Select-Object Identity,User,AccessRights | Format-Table -AutoSize
。
我希望能够从前一个管道获取PrimarySMTPAddress
值,我得到了Get-Mailbox
的结果。
在我添加属性PrimarySMTPAddress
时,我在列中没有收到任何内容。
最终结果应该是这样的:
Identity User AccessRights PrimarySMTPAddress
-------- ------ ------------ ------------------
Domain.local/Users/Mailbox1 User1 {FullAccess} Mailbox1@Domain.local
Domain.local/Users/Mailbox2 User2 {FullAccess} Mailbox2@Domain.local
Domain.local/Users/Mailbox3 User3 {FullAccess} Mailbox3@Domain.local
答案 0 :(得分:3)
您可以使用ForEach-Object cmdlet,将值分配给变量,然后使用Write-Output将管道值发送到下一个cmdlet。使用Select-Object时,可以使用computed属性访问变量值。
Get-Mailbox |
ForEach-Object { $primarySmtpAddress = $_.PrimarySMTPAddress; Write-Output $_; } |
Get-MailboxPermission |
Select-Object Identity,User,AccessRights, @{n='PrimarySMTPAddress';e={$primarySmtpAddress}} | Format-Table -AutoSize