![服务无法在一台计算机上启动 - 登录失败](https://linux22.com/image/1437388/%E6%9C%8D%E5%8A%A1%E6%97%A0%E6%B3%95%E5%9C%A8%E4%B8%80%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B8%8A%E5%90%AF%E5%8A%A8%20-%20%E7%99%BB%E5%BD%95%E5%A4%B1%E8%B4%A5.png)
无法启动 Windows 服务,错误登录失败。
但
- 帐户位于域中并属于本地管理组,并且已设置服务登录策略。
- 密码已重置且帐户未被锁定。
- 该服务在同一个域中另一台我无法访问的机器上运行。
- 使用 sc 命令行设置帐户详细信息可以正常工作,但无法启动服务。
- 甚至重新启动了机器。
为什么
我的任务是创建一项自定义服务,该服务安装在我们旧域中的服务器上,并使用专用帐户运行。它运行完美,每个人都很满意。
几周前,我们都搬到了一个新域,旧服务器被停用了。新服务器安装了旧服务,并有一个新的域用户来执行该服务。我编写的代码失败了,因为服务器上有新组件。这记录在服务自定义事件日志中,非常清楚,缺少 dll。
使用较新的组件重建了该服务并试图让所有者部署它,但他们拒绝了,直到我使用新的域服务运行器用户帐户在本地运行它。
使用我的个人域帐户在我的计算机上执行服务运行良好。任何使用域帐户启动它的尝试都会导致登录失败。
我可以跑
sc qc SERVICENAME
sc query SERVICENAME
sc queryex SERVICENAME
在我的计算机和服务器上均可正常运行,并且它们是相同的。
我用了
sc config SERVICENAME obj= NEWDOMAIN\ACCOUNTNAME password= PASSWORD
确保我绝对不会输入错误的密码。此外,我还让域管理员重置了密码,确保帐户没有被锁定。
为什么在这台机器上我不能以该域用户身份运行此服务?
- 服务与这台机器上的其他用户一起工作。
- 服务(旧版本)与同一域用户在目标服务器上执行。