我试图获取此命令以列出所有通讯组,以包括所有电子邮件地址(不仅是主电子邮件地址),而且可行,尽管我希望以逗号分隔而不是空格分隔。
唯一缺少的是我也想在结果中包括的成员。有人可以告诉我该怎么做吗?
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的一个单元格中显示所有逗号分隔的结果(或易于阅读的某种方式)。
答案 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
调用,因此您的通讯组列表越大,此查询的速度就会越慢。