【问题标题】:Get all DistributionGroups and Members that have contacts with a specific domain获取与特定域有联系的所有 DistributionGroups 和 Members
【发布时间】:2021-06-02 18:49:46
【问题描述】:

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

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

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

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

谢谢

【问题讨论】:

    标签: powershell email exchange-server


    【解决方案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"

    获取-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
            
    }
    

    }

    【讨论】:

      猜你喜欢
      • 2017-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-15
      • 1970-01-01
      • 2019-06-12
      相关资源
      最近更新 更多