我遇到了这个奇怪的问题 - 我在新安装的服务上调用 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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top