You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

以普通用户身份运行的服务能否获取Managed Service Account密码?

Windows MSA密码读取权限问题解答

结合Windows服务的添加方式及其在svchost.exe进程中的运行机制,针对场景问题解答如下:

场景回顾

在已加入AD域的Windows主机上部署了一个以普通用户账户运行的heart-beat服务(该普通用户拥有Log on as Service权限),主机已安装一个Managed Service Account(MSA),询问该服务能否通过以下代码获取MSA的密码:

$MSA = ConvertFrom-ADManagedPasswordBlob (Get-ADServiceAccount SvcCustomerWeb -prop 'msDS-ManagedPassword' | Select -expand 'msDS-ManagedPassword')
ConvertTo-NTHash $MSA.SecureCurrentPassword

已知以SYSTEM账户运行服务时可成功获取,现确认普通用户账户的情况。

结论

普通用户账户运行的heart-beat服务无法通过上述代码获取MSA的密码。

核心原因

  • AD域中msDS-ManagedPassword属性的读取权限有严格限制:默认仅允许域管理员、SYSTEM账户(对应主机的计算机账户)以及MSA关联的主机计算机账户读取该属性。
  • 普通域用户账户不在上述权限范围内,执行Get-ADServiceAccount命令读取msDS-ManagedPassword属性时会因权限不足失败,后续的密码解析步骤自然无法完成。
  • Log on as Service权限仅允许账户作为服务身份登录,和读取MSA密码属性的权限无关联,无法帮助普通用户突破权限限制。

补充说明

当服务以SYSTEM账户运行时,SYSTEM对应的是主机的计算机账户,而MSA的密码属性默认允许其绑定的主机计算机账户读取,因此可以成功获取密码。

内容的提问来源于stack exchange,提问作者testuser7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:12:37