ChangeServiceConfig问题设置登录凭据
-
03-07-2019 - |
题
我遇到了这个奇怪的问题 - 我在新安装的服务上调用 ChangeServiceConfig
(我自己 CreateService
)来提供登录凭据,但是函数成功(返回TRUE),如果我尝试启动服务,则失败并返回1069(登录失败)。如果我进入服务管理器并手动修改凭证(我可以看到用户名是正确的,但当然看不到密码),那么一切正常,它就开始了。
电话本身很简单:
ChangeServiceConfig(hService,SERVICE_NO_CHANGE,SERVICE_NO_CHANGE,SERVICE_NO_CHANGE,NULL,NULL,NULL,NULL,strUser,strPassword,NULL);
关于我应该在哪里寻找以及可能出现什么问题的任何想法?
提前致谢。
解决方案
用户帐户必须明确拥有作为服务登录的权限( SeServiceLogonRight
)。许多用户(包括计算机管理员)可能没有设置此标志,您可能需要手动设置它。当您使用它来配置服务时,Windows服务控制面板实际上在后台默默地执行此操作。
对于需要完全限定用户名,我也有一些模糊的记忆。它必须是 DOMAIN \ Username
格式 - 如果是本地帐户,则需要指定。\ Username
或查找机器名称并使用 MACHINENAME \ Username 代码>
不隶属于 StackOverflow