我需要获得成员数小于或等于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
答案 0 :(得分:2)
类似这样的东西:
$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
答案 1 :(得分:1)
另一种方式(保持单线想法):
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
,所以这不是很有效。