域环境下配置adfs时, 出现错误:无法启动计算机上的服务 MSSQL$MICROSOFT##WID

环境:

✅ ADFS主机加入域,非域控
ADFS角色已安装

image

原因分析

Windows Internal Database(WID)服务默认使用一个内置的本地系统账户(通常是 NT SERVICE\MSSQL$MICROSOFT##WID)运行,
默认情况下,Windows 允许虚拟服务账户(如 NT SERVICE\...)自动拥有 “作为服务登录”(Log on as a service)权限。
但如果你的 域组策略显式定义了“作为服务登录”的用户列表(例如仅包含 DOMAIN\ServiceAccounts),而未包含虚拟账户,那么本地虚拟账户就会被拒绝登录。域组策略 (GPO) 覆盖了本地安全策略,导致权限被重置。

⚠️ 注意:域 GPO 会定期覆盖本地策略(通常每 90 分钟)。如果你的域 GPO 显式配置了“作为服务登录”(即“已定义”而非“未配置”),那么你的本地修改会被覆盖。


✅ 方案:修改域 GPO,允许本地虚拟账户登录(推荐)

    1. 登录域控主机,打开 组策略管理(gpmc.msc)
    1. 导航到“Default Domain Policy”,右键编辑
    1. 导航到:
      计算机配置 → 策略 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配
    1. 找到策略:“作为服务登录”(Log on as a service)
    1. 启用策略,并添加以下内置安全主体:
    NT SERVICE\All Services
    

添加 NT SERVICE\All Services(仅 Windows Server 2012 R2 及以上支持)
NT SERVICE\MSSQL$MICROSOFT##WID 虽然名字固定,但它仍是本地账户,在 GPO 中添加它对其他机器无效,对该机器也可能不被识别,因为 GPO 应用于域账户上下文。

    1. 重启adfs主机,注意不是上述域控主机

步骤5参考截图:

image

posted @ 2025-11-21 17:35  悠哉大斌  阅读(11)  评论(0)    收藏  举报