本文介绍当Active Directory域控制器错误地对多个密钥分发服务(KDS)根密钥进行排序时,组托管服务帐户(gMSA)如何遇到身份验证失败。 它还提供有关如何防止此问题的指导。
Prerequisites
- 运行 Windows Server 2019、Windows Server 2022 或更高版本的 Active Directory 域控制器。
- 掌握 PowerShell 和
Add-KdsRootKeycmdlet 命令。 - 有权在您的环境中创建和管理 KDS 根密钥。
- 了解应用于域控制器的累积更新,特别是适用于 Windows Server 2022 及更高版本的 2026 年 4 月累积更新。
问题说明
在 2026 年 4 月累积更新中Windows Server 2022及更高版本的更新中,Active Directory域控制器在内部对 KDS 根密钥进行排序的方式发生了更改。 此更改将不受忽视,在大多数环境中没有影响。 但是,如果在环境中创建了多个 KDS 根密钥,其中一个密钥是使用命令创建的:
Add-KdsRootKey
然后不久,使用如下命令创建另一个密钥:
Add-KdsRootKey -EffectiveTime ((Get-Date).AddHours(-10))
或
Add-KdsRootKey -EffectiveImmediately
然后,环境中的域控制器可能会按错误顺序对这些 KDS 根密钥进行排序,从而导致使用这些 KDS 密钥的 gMSA 帐户停止工作。
如果环境中存在单个 KDS 根密钥,则无法遇到此问题。
如果所有域控制器都Windows Server 2022或更高版本,则无法遇到此问题。
此问题仅在以下环境中发现:环境中要么同时包含运行 Windows Server 2022 及更高版本的域控制器和运行 Windows Server 2019 及更早版本的域控制器,要么同时包含已安装 2026 年 4 月累积更新(CU)的域控制器和尚未更新的域控制器。
解决方法:创建第三个 KDS 根密钥以确保正确排序
若要主动防止由于对多个 KDS 根密钥进行错误排序而导致的身份验证失败:
- 在域控制器上打开 PowerShell。
- 运行以下命令以创建没有参数的新 KDS 根密钥:Add-KdsRootKey
- 请勿删除现有的 KDS 根密钥。 无论Windows版本或更新状态如何,额外密钥都有助于确保跨域控制器进行适当的排序。
故障排除清单
- 检查环境中是否存在多个 KDS 根密钥。
- 查看用于每个 KDS 根密钥的创建命令。
- 确定环境中的域控制器版本和更新级别的混合。
- 确定域控制器是否错误地对 KDS 根密钥进行排序。
原因:多个 KDS 根键的排序不正确
从 Windows Server 2022 及更高版本开始,2026 年 4 月累积更新会更改Active Directory域控制器在内部处理 KDS 根密钥的方式。 如果使用不同的有效时间创建多个密钥,混合版本环境中的域控制器(或具有混合更新级别)可能会错误地对其进行排序。 这种不正确的排序可能导致依赖于这些密钥的 gMSA 帐户无法进行身份验证。
解决方案:创建其他 KDS 根密钥
- 确保对域控制器拥有管理权限。
Add-KdsRootKey运行没有参数的 cmdlet 以生成新的 KDS 根密钥: Add-KdsRootKey- 保留所有现有密钥。 第三个密钥在所有域控制器之间正确排序,防止身份验证失败。
高级故障排除和数据收集
如果应用解决方法后身份验证失败仍然存在:
- 通过运行以下命令收集环境中所有 KDS 根密钥的列表: Get-KdsRootKey
- 记录每个密钥的创建时间和有效时间。
- 确定所有域控制器的版本和更新状态。
- 从受影响的域控制器捕获任何相关的事件日志。
- 在向 Microsoft 提交支持工单时,请提供此信息,以便开展调查。