You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PowerShell的Get-DistributionGroupMember无法获取通讯组全部成员

解决方法:获取通讯组的全部成员(含非AD个人联系人)

你遇到的问题是因为Get-DistributionGroupMember仅能返回Active Directory/Exchange目录中存在的对象(如域用户、邮件联系人等),而通过Outlook添加的非AD个人联系人是以纯SMTP邮件地址的形式存储在通讯组的ExternalMembers属性中,不会被该cmdlet识别。以下是获取全部成员的步骤:

步骤1:查看通讯组的外部成员属性

使用Get-DistributionGroup命令查询通讯组的ExternalMembers属性,直接获取所有非AD成员的邮件地址:

# 替换为你的通讯组名称或邮件地址
Get-DistributionGroup -Identity "Sales Team" -Properties ExternalMembers | Select-Object Name, PrimarySmtpAddress, ExternalMembers

执行后,ExternalMembers字段会列出所有通过Outlook添加的个人联系人邮件地址。

步骤2:合并AD成员与外部成员

如果需要一次性获取所有成员(AD成员+外部成员),可以结合两个命令的结果:

$groupName = "Sales Team"

# 获取AD目录中的成员
$adMembers = Get-DistributionGroupMember -Identity $groupName | 
    Select-Object Name, PrimarySmtpAddress, RecipientType

# 获取外部邮件地址成员
$externalMembers = (Get-DistributionGroup -Identity $groupName -Properties ExternalMembers).ExternalMembers | 
    ForEach-Object {
        [PSCustomObject]@{
            Name = $null  # 外部成员无目录对象名称,仅保留邮件地址
            PrimarySmtpAddress = $_
            RecipientType = "External SMTP Member"
        }
    }

# 合并并输出所有成员
$allMembers = $adMembers + $externalMembers
$allMembers | Format-Table -AutoSize

关键说明

  • 通讯组的外部成员仅存储为纯SMTP地址,没有对应的AD/Exchange目录对象,因此无法通过Get-DistributionGroupMember返回。
  • Outlook联机界面会同时读取通讯组的常规成员列表和ExternalMembers属性,因此能显示全部成员。
  • 如果是Exchange本地环境,逻辑一致,同样通过ExternalMembers属性获取外部成员。

内容的提问来源于stack exchange,提问作者Marco P.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:03:28