Exchange PowerShell如何区分混合部署环境中的本地和云端通讯组
混合Exchange部署环境下通讯组区分属性说明
核心可区分属性
混合部署场景下确实存在可用于区分本地/云端通讯组的属性,根据你查询的管理入口不同,可使用的属性如下:
- 从本地Exchange PowerShell查询时,使用
IsDirSynced属性:- 属性值为
$false:本地创建且未同步到云端的本地通讯组 - 属性值为
$true:从本地AD同步到云端的通讯组 - 注意:本地管理端默认查不到纯云端创建、未开启写回同步的通讯组
- 属性值为
- 从Exchange Online PowerShell查询时,使用
RecipientTypeDetails+OnPremisesObjectId组合属性判断:RecipientTypeDetails值为MailUniversalDistributionGroup/MailUniversalSecurityGroup,且OnPremisesObjectId不为空:本地同步到云端的通讯组RecipientTypeDetails值为ExchangeDistributionGroup/ExchangeSecurityGroup,且OnPremisesObjectId为空:纯云端创建的通讯组
统计示例脚本
本地Exchange端统计本地通讯组数量
# 统计所有未同步的本地通讯组 (Get-DistributionGroup -ResultSize Unlimited | Where-Object {$_.IsDirSynced -eq $false}).Count
Exchange Online端统计两类通讯组数量
# 统计本地同步到云端的通讯组数量 (Get-DistributionGroup -ResultSize Unlimited | Where-Object {$_.OnPremisesObjectId -ne $null}).Count # 统计纯云端创建的通讯组数量 (Get-DistributionGroup -ResultSize Unlimited | Where-Object {$_.OnPremisesObjectId -eq $null}).Count
注意事项
- 如果你的混合环境开启了云端组写回本地AD的功能,纯云端创建的组也会同步到本地,此时本地端查询的该类组
IsDirSynced同样为$true,可额外结合WhenCreated等属性辅助判断 - 统计前请确保对应PowerShell模块已正确安装、连接,且查询账号拥有对应权限
内容的提问来源于stack exchange,提问作者fnx_qt
相关产品推荐
相关产品推荐

