使用本地目录同步时更新Azure AD用户经理属性遇阻求助
问题分析与解决方案
你遇到的错误是因为这些用户对象是本地AD管控并同步到Azure AD的,这类对象的核心属性(包括manager)在Azure AD里是只读状态,不能直接通过Graph API修改——所有属性变更必须在源端(本地AD)完成,再通过AD Connect同步到Azure AD。
可行解决方案
1. 在本地AD中配置跨域经理关系
- 如果多个本地域属于同一Active Directory林:直接在本地AD用户的「经理」属性中选择跨域的用户即可,只要域之间的信任关系正常,AD能解析到目标用户对象。
- 如果多个本地域属于不同AD林:先配置林之间的双向信任,之后在本地AD中为用户设置跨林的经理属性,确保两边AD能互相解析对象。
2. 验证AD Connect同步配置
确认AD Connect的同步规则中,manager属性是处于启用同步状态的(默认AD Connect会同步该属性,若之前有修改过规则可以检查确认)。配置完成后,等待AD Connect自动同步,或者手动触发一次同步,经理关系就会同步到Azure AD中。
3. 排除迁移中的对象干扰
如果报错提示提到「正在迁移的对象」,需要等该用户迁移完成后再操作,或者提前在本地AD中配置好经理关系再启动迁移。
补充说明
你当前的Graph API代码逻辑是对的,但仅适用于云原生用户(即直接在Azure AD中创建、不由本地AD管控的用户)。对于本地同步过来的用户,必须遵循「源端修改+同步」的流程。
错误提示原文:
Unable to update the specified properties for on-premises mastered Directory Sync objects or objects currently undergoing migration
你的代码:
public async Task<bool> UpdateManagerForUser(string userId, string managerId) { try { await _graphServiceClient.Users[userId].Manager.Reference.Request().PutAsync(managerId); return true; } catch(Exception ex) { Console.WriteLine(ex); return false; } }
内容的提问来源于stack exchange,提问作者sorenchristensen
相关产品推荐
相关产品推荐

