获取与特定域有联系的所有 DistributionGroups 和 Members

发布时间:2021-03-04 06:25

我有一个 0365 环境,我想获取所有通讯组和匹配特定“域”的成员

我下面的代码有效,但我必须指定通讯组名称

Get-DistributionGroupMember "DG Name" | Get-MailContact | select primarysmtpaddress, alias | where-Object {($_.primarysmtpaddress -like "*@domain.org.au*")}

我不知道符合我的条件的所有 DG 名称如何修改我的代码以运行所有这些名称

谢谢

回答1

您可以使用 Get-DistributionGroup cmdlet 获取所有分发和启用邮件的安全组的列表。然后遍历该列表。

如果您不想包含安全组,请按如下方式过滤掉这些安全组

$saveto = "C:\file.csv"
Get-DistributionGroup -ResultSize Unlimited | 
    Where-Object { $_.GroupType -notlike '*SecurityEnabled'} |   # filter out mail-enabled security groups
    Get-DistributionGroupMember | 
    Get-MailContact | 
    Where-Object { $_.primarysmtpaddress -like "*@domain.org.au*" } |
    Select-Object PrimarySMTPAddress, Alias |
    Export-Csv -Path $saveto -NoTypeInformation -UseCulture
回答2

这是答案 id 做到了

$saveto = "C:\file.csv"

Get-DistributionGroup |排序名称 | ForEach-Object {

"`r`n$($_.Name)`r`n=============" | Add-Content $saveto
Get-DistributionGroupMember $_.Name | sort Name | where-Object {($_.primarysmtpaddress -like "*@domain.org.au*")}| ForEach-Object {
            $_.Name + " (" + $_.PrimarySMTPAddress + ")" | Add-Content $saveto
        
}

}