我尝试导出通讯组中所有邮箱的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"。
答案 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
循环内,则只导出一个结果。以上方式是我实现这一目标的更简单方法。