域环境下配置adfs时, 出现错误:无法启动计算机上的服务 MSSQL$MICROSOFT##WID
环境:
✅ ADFS主机加入域,非域控
✅ ADFS角色已安装

原因分析
Windows Internal Database(WID)服务默认使用一个内置的本地系统账户(通常是 NT SERVICE\MSSQL$MICROSOFT##WID)运行,
默认情况下,Windows 允许虚拟服务账户(如 NT SERVICE\...)自动拥有 “作为服务登录”(Log on as a service)权限。
但如果你的 域组策略显式定义了“作为服务登录”的用户列表(例如仅包含 DOMAIN\ServiceAccounts),而未包含虚拟账户,那么本地虚拟账户就会被拒绝登录。域组策略 (GPO) 覆盖了本地安全策略,导致权限被重置。
⚠️ 注意:域 GPO 会定期覆盖本地策略(通常每 90 分钟)。如果你的域 GPO 显式配置了“作为服务登录”(即“已定义”而非“未配置”),那么你的本地修改会被覆盖。
✅ 方案:修改域 GPO,允许本地虚拟账户登录(推荐)
-
- 登录域控主机,打开 组策略管理(gpmc.msc)
-
- 导航到“Default Domain Policy”,右键编辑
-
- 导航到:
计算机配置 → 策略 → Windows 设置 → 安全设置 → 本地策略 → 用户权限分配
- 导航到:
-
- 找到策略:“作为服务登录”(Log on as a service)
-
- 启用策略,并添加以下内置安全主体:
NT SERVICE\All Services
添加
NT SERVICE\All Services(仅 Windows Server 2012 R2 及以上支持)。
NT SERVICE\MSSQL$MICROSOFT##WID虽然名字固定,但它仍是本地账户,在 GPO 中添加它对其他机器无效,对该机器也可能不被识别,因为 GPO 应用于域账户上下文。
-
- 重启adfs主机,注意不是上述域控主机
步骤5参考截图:

浙公网安备 33010602011771号