Sync提示Attribute不唯一报错,AAD同步失败如何查找重复项?

排查步骤
1. 先从同步服务管理器取错误详情
打开Azure AD Connect服务器上的同步服务客户端,默认路径为 C:\Program Files\Microsoft Azure AD Sync\UIShell\miisclient.exe:
- 切换到「操作」标签,找到最近执行失败的同步作业
- 点击下方连接器空间区域的错误条目,双击错误项即可查看具体冲突的属性名(常见为UserPrincipalName、ProxyAddresses、Mail),以及冲突对象的初步ID信息
2. 对比本地AD与Azure AD属性找重复
确定冲突属性后,分别导出两边的属性列表做对比:
- 导出本地AD所有用户的对应属性(以UPN和ProxyAddresses为例):
# 需提前导入AD模块 Get-ADUser -Filter * -Properties UserPrincipalName,ProxyAddresses | Select-Object Name,SamAccountName,UserPrincipalName,ProxyAddresses | Export-Csv -Path C:\Temp\LocalAD_Attrs.csv -NoTypeInformation
- 导出Azure AD所有用户的对应属性:
# 需提前安装Microsoft Graph模块 Connect-MgGraph -Scopes "User.Read.All","Group.Read.All" Get-MgUser -All -Property UserPrincipalName,ProxyAddresses,Mail | Select-Object DisplayName,UserPrincipalName,ProxyAddresses,Mail | Export-Csv -Path C:\Temp\AAD_Attrs.csv -NoTypeInformation
- 可直接用PowerShell快速定位重复值,示例为查找本地AD重复的UPN:
Import-Csv C:\Temp\LocalAD_Attrs.csv | Group-Object UserPrincipalName | Where-Object {$_.Count -gt 1}
3. 排查AAD软删除对象占用属性的情况
很多情况下重复属性是被AAD回收站里的软删除对象占用,执行命令查询:
Get-MgDirectoryDeletedItem -DirectoryObjectType microsoft.graph.user -All | Select-Object DisplayName,UserPrincipalName,ProxyAddresses
如果找到对应占用属性的软删除对象,可直接永久删除该对象释放属性,或修改软删除对象的属性值解除占用。
4. 开启详细日志定位
如果以上步骤仍未找到冲突项,开启同步服务的详细日志:
- 在同步服务管理器顶部点击「工具」→「选项」,勾选「启用日志记录」,将日志级别调整为高
- 重新执行一次增量同步,到默认日志路径
C:\ProgramData\Microsoft\Azure AD Connect\Logs提取最新日志,搜索duplicate、conflict关键词即可获取两个冲突对象的完整信息。
内容的提问来源于stack exchange,提问作者Ace of Spade
相关产品推荐
相关产品推荐

