Winapi ChangeServiceConfig设置登录凭据时出现问题

Winapi ChangeServiceConfig设置登录凭据时出现问题,winapi,windows-services,Winapi,Windows Services,我遇到了一个奇怪的问题-我正在对一个新安装的服务调用ChangeServiceConfig(我自己CreateServiceit)来提供登录凭据,但是当函数成功(返回TRUE)时,如果我尝试启动该服务,它会以1069失败(登录失败)。如果我进入服务管理器并手动修改凭据(我可以看到用户名是正确的,但当然看不到密码),那么一切都正常,并且启动正常 调用本身很简单: ChangeServiceConfig(hs服务、服务不更改、服务不更改、服务不更改、空、空、空、空、strUser、strPasswo

我遇到了一个奇怪的问题-我正在对一个新安装的服务调用
ChangeServiceConfig
(我自己
CreateService
it)来提供登录凭据,但是当函数成功(返回TRUE)时,如果我尝试启动该服务,它会以1069失败(登录失败)。如果我进入服务管理器并手动修改凭据(我可以看到用户名是正确的,但当然看不到密码),那么一切都正常,并且启动正常

调用本身很简单:

ChangeServiceConfig(hs服务、服务不更改、服务不更改、服务不更改、空、空、空、空、strUser、strPassword、空)

有没有关于我应该找的地方和可能出现的问题的想法


提前感谢。

用户帐户必须明确具有作为服务登录的权限(
SeServiceLogonRight
)。许多用户,包括计算机管理员,可能没有设置此标志,您可能需要手动设置。当您使用windows服务控制面板配置服务时,它实际上会在幕后悄悄地执行此操作


关于需要完全限定用户名,我也有一些模糊的记忆。它需要采用
域\用户名
格式-如果是本地帐户,您需要指定
\Username
或查找机器名并使用
MACHINENAME\Username

谢谢。我想我刚刚发现了问题所在,实际上是登录服务权限-,我会尝试一下,看看这是否解决了问题。是的,是登录服务用户权限没有设置。我真希望在我开始发飙之前,能在CreateService/ChangeServiceConfig文档的某个地方记录下这一点:)