使用 Powershell 列出电子邮件通讯组名称、成员计数和电子邮件地址,然后导出到 .CSV
Using Powershell to list Email distribution group name, member count and email address then export to .CSV
我需要获取成员小于或等于 1 的 Exchange 通讯组。
我需要的输出是 .CSV:
Distributionlistname , membercount , EmailAddress
DLName1, 1, DL1@domain.com
DLName2, 0, DL2@domain.com
DLName3, 0, DL3@domain.com
...
这是我找到的脚本,但没有像上面那样给我输出:
Get-DistributionGroup –ResultSize Unlimited | Where-Object { (Get-DistributionGroupMember –identity $_.Name –ResultSize Unlimited).Count -lt 1 } | Select-Object Name -ExpandProperty EmailAddresses | Export-Csv C:\Result.csv
像这样:
$result = @()
Get-DistributionGroup –ResultSize Unlimited |
ForEach-Object {
$memberCount = @(Get-DistributionGroupMember –Identity $_.DistinguishedName –ResultSize Unlimited).Count
if ($memberCount -le 1) {
$result += New-Object -TypeName PSObject -Property @{
'DistributionlistName' = $_.Name
'MemberCount' = $memberCount
'EmailAddress' = $_.PrimarySmtpAddress
}
}
}
$result | Export-Csv C:\Result.csv -NoTypeInformation -Force
另一种方式(保持单行的想法):
Get-DistributionGroup –ResultSize Unlimited | Where-Object { (Get-DistributionGroupMember –identity $_.Name –ResultSize Unlimited).Count -lt 1 } | Select-Object Name,@{Name="EmailAddress";Expression={(Get-DistributionGroupMember –identity $_.Name –ResultSize Unlimited).Count}},PrimarySmtpAddress | Export-Csv C:\Result.csv
不过,这可能效率不高,因为你 运行 Get-DistributionGroupMember
两次。
我需要获取成员小于或等于 1 的 Exchange 通讯组。
我需要的输出是 .CSV:
Distributionlistname , membercount , EmailAddress
DLName1, 1, DL1@domain.com
DLName2, 0, DL2@domain.com
DLName3, 0, DL3@domain.com
...
这是我找到的脚本,但没有像上面那样给我输出:
Get-DistributionGroup –ResultSize Unlimited | Where-Object { (Get-DistributionGroupMember –identity $_.Name –ResultSize Unlimited).Count -lt 1 } | Select-Object Name -ExpandProperty EmailAddresses | Export-Csv C:\Result.csv
像这样:
$result = @()
Get-DistributionGroup –ResultSize Unlimited |
ForEach-Object {
$memberCount = @(Get-DistributionGroupMember –Identity $_.DistinguishedName –ResultSize Unlimited).Count
if ($memberCount -le 1) {
$result += New-Object -TypeName PSObject -Property @{
'DistributionlistName' = $_.Name
'MemberCount' = $memberCount
'EmailAddress' = $_.PrimarySmtpAddress
}
}
}
$result | Export-Csv C:\Result.csv -NoTypeInformation -Force
另一种方式(保持单行的想法):
Get-DistributionGroup –ResultSize Unlimited | Where-Object { (Get-DistributionGroupMember –identity $_.Name –ResultSize Unlimited).Count -lt 1 } | Select-Object Name,@{Name="EmailAddress";Expression={(Get-DistributionGroupMember –identity $_.Name –ResultSize Unlimited).Count}},PrimarySmtpAddress | Export-Csv C:\Result.csv
不过,这可能效率不高,因为你 运行 Get-DistributionGroupMember
两次。