2008-10-01 162 views
1

我有这个奇怪的问题 - 我打电话给ChangeServiceConfig新安装的服务(我CreateService它自己)提供登录凭据,但功能成功(返回TRUE),如果我尝试启动服务,它失败了一个1069(登录失败)。如果我进入服务管理器并手动修改凭据(我可以看到用户名是正确的,但当然看不到密码),那么它就可以了,并且它可以正常启动。ChangeServiceConfig问题设置登录凭据

调用本身很简单:

ChangeServiceConfig(hService, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, NULL, NULL, NULL, NULL, strUser, strPassword, NULL);

在哪里我应该找什么可能是错的任何想法?

在此先感谢。

回答

1

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

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

+0

谢谢。我想我只是发现了什么问题,它实际上是LOG_ON_AS_SERVICE权限 - http://support.microsoft.com/kb/q132958/,我会试一试,看看是否能解决这个问题。 – dennisV 2008-10-01 00:40:19