排查对象未与 Microsoft Entra ID 同步的问题
如果对象未按预期与 Microsoft Entra ID 同步,则可能是因为多种原因。 如果收到来自 Microsoft Entra ID 的有关错误的电子邮件,或在 Microsoft Entra Connect Health 中看到了错误,请参阅排查同步期间发生的错误。 但是,如果你要解决的问题所涉及的对象不在 Microsoft Entra ID 中,则应使用本文作为参考。 本文介绍如何在本地组件Microsoft Entra Connect 同步中查找错误。
重要
对于版本 1.1.749.0 或更高版本的 Microsoft Entra Connect 部署,请使用向导中的 故障排除任务 来排查对象同步问题。
同步过程
在调查同步问题之前,让我们了解 Microsoft Entra Connect 同步过程:
术语
- CS:连接器空间,数据库中的一个表
- MV:Metaverse,数据库中的一个表
同步步骤
同步过程涉及以下步骤:
从 AD 导入: Active Directory 对象被导入到 Active Directory CS。
从 Microsoft Entra ID 导入: Microsoft Entra 对象将引入到 Microsoft Entra CS 中。
同步: 入站同步规则和出站同步规则按优先级编号的顺序运行,从低到高。 若要查看同步规则,请从桌面应用程序转到同步规则编辑器。 入站同步规则将数据从 CS 引入 MV。 出站同步规则将数据从 MV 移动到 CS。
导出到 AD: 同步后,对象将从 Active Directory CS 导出到 Active Directory。
导出到 Microsoft Entra ID: 同步后,对象将从 Microsoft Entra CS 导出到 Microsoft Entra ID。
故障排除
若要查找错误,请按以下顺序查看几个不同的位置:
在开始这些步骤之前,请先启动 Synchronization Service Manager。
操作
在 Synchronization Service Manager 中,应从“操作”选项卡开始故障排除。 此选项卡显示最近操作的结果。
操作 选项卡的上半部分按时间顺序展示所有的运行记录。 默认情况下,操作日志保留过去七天的信息,但此设置可以使用 计划程序进行更改。 查找所有未显示“成功”状态的运行。 可以通过选择标头来更改排序。
状态 列包含了最重要的信息,并显示出运行过程中最严重的问题。 下面是调查优先级顺序最常见的状态的快速摘要(其中 * 指示多个可能的错误字符串)。
地位 | 评论 |
---|---|
stopped-* | 运行无法完成。 例如,如果远程系统关闭且无法联系,则可能发生这种情况。 |
stopped-error-limit | 有 5,000 个以上的错误。 由于出现大量错误,运行会自动停止。 |
completed-*-errors | 运行已完成,但发生应调查的错误(数量少于 5,000 个)。 |
completed-*-warnings | 运行已完成,但某些数据未处于预期状态。 如果出现错误,则此消息只是症状。 在解决错误之前不要调查警告。 |
成功 | 无问题。 |
选择某一行时,“操作”选项卡的底部将更新以显示该运行的详细信息。 在此区域的最左侧,可能会显示标题为“步骤 #”的列表。 仅当林中有多个域并且每个域都由一个步骤表示时,才会显示此列表。 可以在“分区”标题下方找到域名。 在 同步统计信息 标题下,可以找到有关已处理的更改数的详细信息。 选择链接以获取已更改对象的列表。 如果存在有错误的对象,这些错误会显示在 同步错误 标题下。
“操作”选项卡上的错误
出现错误时,Synchronization Service Manager 会将错误对象和错误本身显示为提供详细信息的链接。
同步服务管理器中的错误
首先选择错误字符串。 (在上图中,错误字符串是“sync-rule-error-function-triggered”。)你首先会看到对象的概述。 若要查看实际的错误,请选择“堆栈跟踪”。 此跟踪提供错误的调试级别信息。
右键选择“调用堆栈信息”框,选择“全选”,然后选择“复制”。 然后复制堆栈,并在偏爱的编辑器(例如记事本)中查看此错误。
如果错误来自 SyncRulesEngine,则调用堆栈信息首先列出对象上的所有属性。 向下滚动,直到看到标题 InnerException =>。
下显示了错误信息。
标题后面的行显示错误。 在上图中,错误来自 Fabrikam 创建的自定义同步规则。
如果错误没有提供足够的信息,是时候查看数据本身了。 选择包含对象标识符的链接,并继续排查 连接器空间导入的对象问题。
连接器空间对象属性
如果“操作”选项卡中未显示任何错误,请跟踪从 Active Directory 到 Metaverse 再到 Microsoft Entra ID 的连接器空间对象。 在此路径中,应找到问题所在位置。
在 CS 中搜索对象
在同步服务管理器中,选择 连接器,选择 Active Directory 连接器,然后选择 搜索连接器空间。
在“范围”框中,选择“RDN”(如果想要搜索 CN 属性)或“DN 或定位点”(如果想要搜索 distinguishedName 属性)。 输入一个值并选择“搜索”。
如果找不到要查找的对象,则可能已通过基于域的筛选或基于 OU 的筛选对其进行筛选。 若要验证筛选是否按预期进行配置,请阅读 Microsoft Entra Connect Sync:配置筛选。
可以通过选择 Microsoft Entra 连接器执行另一种有用的搜索。 在“范围”框中选择“挂起的导入”,然后选中“添加”复选框。 通过此搜索,您可以获得 Microsoft Entra ID 中所有无法与本地对象关联的同步对象。
这些对象由另一个同步引擎或具有不同筛选配置的同步引擎创建。 不再管理这些孤立对象。 查看此列表,并考虑使用 Microsoft Graph PowerShell cmdlet 删除这些对象。
CS 导入
打开 CS 对象时,顶部有多个选项卡。 “导入”选项卡显示导入后暂存的数据。
旧值 列显示当前存储在 Connect 中的内容。 “新值”列显示从源系统接收到但尚未应用的内容。 如果对象上有错误,则不会处理更改。
“同步错误”选项卡仅当对象出现问题时,在连接器空间对象属性 窗口中可见。 有关详细信息,请参阅如何排查“操作”选项卡中显示的同步错误。
CS 沿袭
“连接器空间对象属性”窗口中的“沿袭”选项卡显示连接器空间对象与 Metaverse 对象关联的方式。 可以看到连接器上次从连接的系统导入更改的时间,以及应用哪些规则以便在 Metaverse 中填充数据。
在上图中,“操作”列显示了一个操作为“预配”的入站同步规则。 这表示只要存在此连接器空间对象,Metaverse 对象就保持不变。 如果同步规则列表显示包含“预配”操作的出站同步规则,则删除 Metaverse 对象时,也会删除此对象。
在上图中还可以看到,在“PasswordSync”列中,入站连接器空间可进行密码更改,因为有一个同步规则的值为 True。 此密码将通过出站规则发送到 Microsoft Entra ID。
在“沿袭”选项卡中,可以选择 Metaverse 对象属性转到 Metaverse。
预览
“连接器空间对象属性”窗口的左下角提供了“预览”按钮。 选择此按钮可打开 预览版 页,可在其中同步单个对象。 如果对某些自定义同步规则进行故障排除,并且想要查看更改对单个对象的影响,则此页面非常有用。 你可以选择“完全同步”或“增量同步”。还可以选择“生成预览”,它只会在内存中保留更改。 或者,可以选择“提交预览”,这会更新 Metaverse 并暂存对目标连接器空间的所有更改。
在预览版中,可以检查对象并查看应用于特定属性流的规则。
日志
在“预览”按钮旁边,选择“日志”按钮以打开 日志 页。 可在此处查看密码同步状态和历史记录。 有关详细信息,请参阅使用 Microsoft Entra Connect 同步排查密码哈希同步问题。
Metaverse 对象属性
最好从源 Active Directory 连接器空间开始搜索。 但你也可以从 Metaverse 开始搜索。
搜索 MV 中的对象
在 Synchronization Service Manager 中,选择 Metaverse Search,如下图所示。 创建一个查找用户的查询。 搜索公共属性,例如 accountName (sAMAccountName) 和 userPrincipalName。 有关详细信息,请参阅 Sync Service Manager Metaverse 搜索。
在 搜索结果 窗口中,选择对象。
如果未找到该对象,则它尚未到达 Metaverse。 继续搜索 Active Directory 连接器空间中的对象。 如果在 Active Directory 连接器空间中找到该对象,则可能存在阻止对象进入 Metaverse 的同步错误。 或可能会应用同步规则范围筛选器。
在 MV 中找不到对象
如果对象位于 Active Directory CS 中,但不存在于 MV 中,则会应用范围筛选器。 若要查看范围筛选器,请转到桌面应用程序菜单,然后选择 同步规则编辑器。 通过调整以下筛选器来筛选适用于对象的规则。
同步规则编辑器的
查看上面列表中的每个规则,然后选中“作用域筛选器”。 在以下范围筛选器中,如果 isCriticalSystemObject 值为 null 或 FALSE 或为空,则它位于范围内。
转到 CS 导入属性列表,查看阻止对象移到 MV 的筛选器。 连接器空间 属性列表仅显示非空和非空白的属性。 例如,如果 isCriticalSystemObject 列表中未显示,则此属性的值为 null 或空。
在 Microsoft Entra CS 中找不到对象
如果该对象不在 Microsoft Entra ID 的连接器空间中,但在 MV 中,请查看相应连接器空间的出站规则的范围筛选器。 确定对象是否被筛选掉,因为 MV 属性 不符合条件。
要查看出站作用域筛选器,请通过调整下面的筛选器为对象选择适用的规则。 查看每个规则并查看相应的 MV 属性 值。
MV 属性
在“属性”选项卡上,可以看到值以及哪些连接器贡献了它们。
如果对象未同步,请在 Metaverse 中询问以下有关属性状态的问题:
- 属性 cloudFiltered 是否存在并设置为 True? 如果是,则根据基于属性的筛选中的步骤对其进行筛选。
- 属性“sourceAnchor”是否存在? 如果不存在,你是否拥有帐户资源林拓扑? 如果对象被标识为链接的邮箱(属性 msExchRecipientTypeDetails 的值为 2),则由具有已启用的 Active Directory 帐户的林提供 sourceAnchor。 确保正确导入和同步主帐户。 主帐户必须列在对象的 连接器 中。
MV 连接器
“连接器”选项卡显示所有具有对象表示形式的连接器空间。
应具有连接到以下项的连接器:
- 表示用户的每个 Active Directory 林。 此表示形式可以包括 foreignSecurityPrincipals 和 Contact 对象。
- Microsoft Entra ID 中的连接器。
如果缺少与 Microsoft Entra ID 的连接器,请查看 MV 属性,以验证有关预配到 Microsoft Entra ID 的条件。
在 连接器 选项卡中,还可以转到 连接器空间对象。 选择一行,并选择“属性”。