导出通讯组,成员和电子邮件地址

时间:2019-07-22 17:50:18

标签: powershell

我试图获取此命令以列出所有通讯组,以包括所有电子邮件地址(不仅是主电子邮件地址),而且可行,尽管我希望以逗号分隔而不是空格分隔。

唯一缺少的是我也想在结果中包括的成员。有人可以告诉我该怎么做吗?

Get-DistributionGroup -Resultsize unlimited | Select Name,PrimarySmtpAddress,
  @{L="EmailAddresses";E={$_.EmailAddresses | ? {$_.PrefixString -ceq "smtp"} | % {$_.SmtpAddress}}} | 
    Export-Csv c:\Results.csv -NoTypeInformation

基本上,我应该为所有这些列提供所需的值:

DG Name, Primary SMTP Address, Email Addresses (comma delimited), Members (comma delimited)

如果不太困难,最好在每个DG的一个单元格中显示所有逗号分隔的结果(或易于阅读的某种方式)。

1 个答案:

答案 0 :(得分:0)

假设您对EmailAddresses所做的工作没有问题,我选择了分号(;)作为电子邮件地址和成员分隔符。 Members将是每个成员的PrimarySmtpAddress值。随时根据需要进行更改。

Get-DistributionGroup -Resultsize unlimited | Select Name,PrimarySmtpAddress,
  @{L="EmailAddresses";E={($_.EmailAddresses | ? {$_.PrefixString -ceq "smtp"} | % {$_.SmtpAddress}}) -join ';'},
  @{L="Members";E={(Get-DistributionGroupMember $_.Identity).PrimarySmtpAddress -join ';'}} | 
    Export-Csv c:\Results.csv -NoTypeInformation

由于每个组的Get-DistributionGroupMember调用,因此您的通讯组列表越大,此查询的速度就会越慢。