3

我在 windows server 2012 上运行一个名为 prunner 的服务。我使用命令 sc 来更改服务的用户名和密码:

sc.exe config myService obj= "sqa265\hero" password= "hero1"

命令的输出是说它已经成功但是当我去任务管理器以启动服务时,我得到:登录失败!!!

我尝试在用户 hero 和用户管理员下运行 sc 命令,但仍然遇到相同的错误。但非常奇怪的是,如果我通过任务管理器和服务控制面板手动执行相同的操作,我会成功并且服务进入状态:正在运行!!!但我需要自动化这件事,所以请帮忙?

4

1 回答 1

5

您需要为帐户“sqa265\hero”授予 SeServiceLogonRight 权限。正如您已经注意到通过控制面板设置凭据是可行的,但您可能没有注意到的是,如果您在使用控制面板后尝试使用命令行。

您可以通过在控制面板中将服务设置回本地系统帐户,然后再次运行命令行来测试这一点。

要通过脚本解决此问题,您可以使用此 MS 知识库文章中概述的 NTrights 实用程序:http: //support.microsoft.com/kb/315276

安装 NT Rights 后,您可以像这样运行它:

NTRights.exe +r SeServiceLogonRight -u "sqa265\hero"

结合您已有的 sc config 命令行,该服务应该使用这些凭据运行。

进一步阅读: http ://www.techrepublic.com/article/set-user-rights-using-the-ntrights-utility/5032903

于 2013-05-30T20:47:37.007 回答