为何已在PrincipalsAllowedToRetrieveManagedPassword中仍遇GMSA测试失败?
排查AWS托管AD中gMSA的Test-ADServiceAccount失败问题
可能的原因及排查步骤
1. DNS主机名(DNSHostName)相关问题
- 检查EC2实例的DNS主机名配置:
- 执行
Get-ComputerInfo | Select-Object CsDNSHostName, CsDomain,确认返回的CsDNSHostName是完整FQDN(例如ec2-instance.example.com),且与AD中该计算机对象的dnsHostName属性一致。 - 在AWS EC2控制台,确认实例所在VPC的“启用DNS主机名”选项为开启状态。
- 检查gMSA对象的DNS配置:执行
Get-AdServiceAccount GMSA_NAME -Properties dnsHostName,确认该值有效且能被EC2实例正常解析。
- 执行
2. Kerberos加密类型不匹配
- 错误提示明确指向Kerberos加密类型问题,需验证配置一致性:
- 查看gMSA的加密类型:执行
Get-AdServiceAccount GMSA_NAME -Properties msDS-SupportedEncryptionTypes,记录返回数值对应的加密类型(如16代表AES256_HMAC_SHA1)。 - 检查EC2实例的Kerberos加密支持:执行
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters" -Name SupportedEncryptionTypes,确保实例支持gMSA配置的所有加密类型。AWS托管AD默认要求AES加密,若实例仅支持RC4会导致验证失败,需调整实例的Kerberos加密设置。
- 查看gMSA的加密类型:执行
3. EC2计算机对象权限缺失(关键排查点)
- 注意:
PrincipalsAllowedToRetrieveManagedPassword需要添加的是EC2实例的计算机对象,而非Admin用户。gMSA的使用权限是授予计算机,而非登录用户。- 获取当前EC2实例的计算机对象名称:
Get-AdComputer -Identity (Get-ComputerInfo).CsName - 将计算机对象添加到gMSA的权限列表:
Set-AdServiceAccount GMSA_NAME -PrincipalsAllowedToRetrieveManagedPassword (Get-AdComputer EC2_COMPUTER_NAME) - 等待AD同步(AWS托管AD同步通常需5-10分钟)后,重新执行
Test-ADServiceAccount GMSA_NAME。
- 获取当前EC2实例的计算机对象名称:
4. AD对象同步延迟
- AWS托管AD多域控制器间存在同步延迟,修改权限后需等待一段时间让配置生效,再进行测试。
- 执行
repadmin /showrepl(需在域控制器或安装AD管理工具的实例上运行)确认AD复制状态正常。
5. 查看MSA操作日志
- 打开事件查看器,导航到应用程序和服务日志 > Microsoft > Windows > Managed Service Accounts > Operational,查看相关错误事件,获取更详细的失败原因(如DNS解析失败、Kerberos认证错误等)。
内容的提问来源于stack exchange,提问作者JoffLobster
相关产品推荐
相关产品推荐

