Microsoft Graph API无法获取联系人类型的组成员
查看包含多类型成员的通讯组成员实操指南
Hey,针对你这个包含用户、组、联系人等多种成员类型的通讯组查询需求,我来分享下实操的方法和细节~
通过Exchange Admin UI查看
这是最直观的方式,步骤很简单:
- 登录Exchange Admin Center(EAC)
- 导航到收件人 > 组
- 找到目标群组
myGroup,双击打开详情页 - 切换到成员标签页,这里会列出所有直接成员,包括用户邮箱、嵌套组、外部联系人;如果要查看嵌套组里的成员,点击「查看所有成员」就能展开层级
通过PowerShell查询
你提到用Get-DistributionGroup -Identity 'myGroup'获取成员,其实这个命令主要返回组自身的属性,要精准获取组内成员,推荐用Get-DistributionGroupMember命令,它能直接列出所有成员并返回详细属性:
基础查询(直接成员)
Get-DistributionGroupMember -Identity 'myGroup' | Select-Object Alias, Guid, Identity, PrimarySmtpAddress, RecipientType, SamAccountName, WindowsLiveID | ConvertTo-Json
运行后会得到类似你提供的JSON结果:
[{ "Alias": "xxxxxx", "Guid": "xxxxxx", "Identity": "xxxxx", "PrimarySmtpAddress": "xxxxxx", "RecipientType": "UserMailbox", "SamAccountName": "xxxxxxx", "WindowsLiveID": "xxxxxxx" }, { "Alias": "yyyyyyyyy", "Guid": "yyyyyyyyy", "Identity": "yyyyyyyyy", "PrimarySmtpAddress": "yyyyyyyyy", "RecipientType": "MailContact" }]
其中RecipientType是区分成员类型的关键:
UserMailbox:内部用户邮箱MailUniversalDistributionGroup:嵌套的通讯组MailContact:外部联系人
查看嵌套成员(递归查询)
如果你的组里包含其他组,想要一次性获取所有层级的成员,加上-Recurse参数即可:
Get-DistributionGroupMember -Identity 'myGroup' -Recurse | Select-Object Alias, Guid, Identity, PrimarySmtpAddress, RecipientType, SamAccountName, WindowsLiveID | ConvertTo-Json
筛选特定类型成员
如果只需要查看某一类成员,比如外部联系人,可以用Where-Object过滤:
Get-DistributionGroupMember -Identity 'myGroup' | Where-Object { $_.RecipientType -eq 'MailContact' } | Select-Object PrimarySmtpAddress, Alias
内容的提问来源于stack exchange,提问作者Nestor Fedyk
相关产品推荐
相关产品推荐

