你好,
在 Active Directory 中,细粒度密码策略(FGPP)的优先级评估逻辑是严格定义的。系统不会合并多个策略,而是根据 msDS-PasswordSettings 对象的 msDS-PasswordSettingsPrecedence 属性来决定哪一个策略最终生效。数值越小,优先级越高。如果用户同时属于多个全局组或影子组,最终应用的策略就是所有匹配策略里 Precedence 值最小的那一个。
你目前遇到的情况是系统应用了最宽松的策略而不是你预期的最高优先级策略,这通常说明以下几种可能:
Precedence 值配置错误:检查每个 FGPP 的 msDS-PasswordSettingsPrecedence 属性,确认你希望生效的策略确实拥有最小的数值。例如,严格策略应设为 1,宽松策略设为 10 或更大。
组成员关系评估:确认用户确实是目标组的直接成员。FGPP 不会解析嵌套组成员关系,必须是用户直接属于该组。你可以在用户对象上运行 Get-ADUser <SamAccountName> -Properties msDS-ResultantPSO 来查看系统实际应用的策略。
影子组配置问题:如果你使用影子组来间接分配策略,确保影子组本身被正确绑定到对应的 msDS-PasswordSettings 对象。错误的绑定或优先级设置会导致系统选择另一个策略。
排查方法建议:
使用 PowerShell Get-ADFineGrainedPasswordPolicy 查看所有策略的 Precedence 值。
在用户对象上运行 Get-ADUser <User> -Properties msDS-ResultantPSO,确认最终应用的策略 DN。
如果发现最终应用的策略并非你预期的那个,调整目标策略的 msDS-PasswordSettingsPrecedence 值为更小的数值,然后强制刷新组成员关系。
修正方式就是确保严格策略的 Precedence 值最小,并且用户直接属于该策略绑定的组。这样系统在评估时就会正确应用优先级最高的策略,而不是宽松的那一个。
我希望你能在这里找到有用的信息。如果这能帮助你更深入理解问题,欢迎接受答案。如果还有其他问题,请随时留言。祝你有美好的一天!
HP.