导出通讯组中的所有邮箱列表

时间:2015-11-02 20:27:39

标签: powershell exchange-server-2010

我尝试导出通讯组中所有邮箱的CSV列表:

Get-DistributionGroupMember -Identity "GroupA"

这会给我一个每个人姓名的列表。但是,我还需要他们的PrimarySmtpAddress。问题是当我运行脚本时:

$Users = Get-DistributionGroupMember -Identity "GroupA"

foreach ($User in $Users) {
  Get-Mailbox -Identity $User | Select-Object DisplayName, PrimarySmtpAddress
}

我收到以下错误:

  

无法处理参数' Identity'的参数转换。无法转换" @Name {Bob Smith}"类型的值" Deserialized.Selected.Microsoft.Exchange.Data.Directory.Management.ReducedRecipient"键入" Microsoft.Exchange.Configuration.tasks.MailboxIDParameter"。

1 个答案:

答案 0 :(得分:0)

我想出来了。通过将.name添加到$User,它会将正确的信息传递给Get-Mailbox

它正确传递了信息,然后我就可以这样做了

$List foreach ($User in $Users) {
  Get-Mailbox -Identity $User.name |
    Select-Object DisplayName, PrimarySmtpAddress
}

$List | Export-Csv C:\ExportedList.txt

我必须将Export-CSV移到foreach循环之外。通过将所有foreach结果添加到$List,我可以导出整个列表。如果Export-Csv位于foreach循环内,则只导出一个结果。以上方式是我实现这一目标的更简单方法。