AAD Connect同步异常:本地AD禁用账户未同步禁用至Azure AD
针对本地AD禁用账户同步到Azure AD仍为启用状态的问题,结合规则逻辑和AAD Connect运行机制,可从以下方向排查:
验证UserAccountControl属性的实际读取值
在同步服务管理器(Synchronization Service Manager)中定位该用户对象,查看从AD导入的userAccountControl属性值是否确实为0x202(十进制514)。若属性值未正确读取(如显示旧值或非数值),需检查AD连接器的属性筛选配置,确保该属性被正确同步。修正BitAnd函数的参数类型
AAD Connect表达式语言中,若[userAccountControl]被解析为字符串类型,位运算会出现异常。将规则表达式修改为:IIF(BitAnd(ToInteger([userAccountControl]),2)=0,True,False)显式将属性值转换为整数后再执行位运算,验证是否能得到预期的False结果。
检查规则执行顺序与优先级
确认克隆的"In from AD - User Common"规则是最后执行的导入规则。若存在其他后续规则(导入或同步规则)修改了accountEnabled属性,会覆盖当前规则的计算结果。在规则编辑器中查看规则执行顺序,排查是否有冲突配置。对比克隆规则与原规则的完整配置
检查克隆规则是否完整保留了原规则中关于UserAccountControl的处理逻辑,避免克隆过程中误删或修改关键配置。同时确认添加的GAL隐藏属性判断逻辑未干扰accountEnabled的计算。强制刷新同步缓存
执行以下PowerShell命令触发完全同步,清除AAD Connect属性缓存,确保使用最新AD属性值进行规则计算:Start-ADSyncSyncCycle -PolicyType Initial
内容的提问来源于stack exchange,提问作者Johnmen

