查找转发到通讯组列表的Exchange邮箱

时间:2016-12-06 19:16:43

标签: powershell exchange-server-2010

尝试找出一种方法来查找转发到通讯组列表的所有邮箱。

没有运气,任何人都有更好的想法?

$group=Get-DistributionGroup | select PrimarySmtpAddress
Get-Mailbox  | Where-Object { $_.ForwardingAddress -eq "$group" } | Select-Object Name,ForwardingAddress

1 个答案:

答案 0 :(得分:1)

未经测试(PSv2 +; PSv3 +允许更简单的语法):

$groupEmailAddresses = Get-DistributionGroup | foreach { $_.PrimarySmtpAddress.ToString() }
Get-Mailbox  | where { $_.ForwardingSmtpAddress -and 
                    $groupEmailAddresses -contains $_.ForwardingSmtpAddress.ToString() } | 
  Select-Object Name, ForwardingSmtpAddress

请注意,虽然许多PowerShell运算符可以在数组(集合)上运行,但

  • 数组必须位于 LHS (左侧)
  • 且RHS(右侧)必须是标量(非收集值)

在目前的情况下,-contains告诉我们LHS上的集合是否在其元素中具有单个RHS值。