ChangeServiceConfig 问题设置登录凭据

Posted

技术标签:

【中文标题】ChangeServiceConfig 问题设置登录凭据【英文标题】:ChangeServiceConfig problem setting logon credentials 【发布时间】:2008-10-01 00:19:43 【问题描述】:

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

调用本身很简单:

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

【讨论】:

谢谢。我想我刚刚发现了问题所在,实际上是 LOG_ON_AS_SERVICE 权限-support.microsoft.com/kb/q132958,我试试看能不能解决。 是的,未设置 LOG_ON_AS_SERVICE 用户权限。在我开始拔头发之前,我真的希望在 CreateService/ChangeServiceConfig 文档中的某个地方记录这一点:)

以上是关于ChangeServiceConfig 问题设置登录凭据的主要内容,如果未能解决你的问题,请参考以下文章

Changing a Service's Configuration

ubuntu下用samba建一个SMB服务器。为啥自己设置的用户名密码登录不了。(本机的和自己建的都登不了。

电信宽带家庭网关设置,用户名为useradmin,密码自己改了,现在登不了,重买光猫网络能用?

Googleplay为什么登不上,显示与Goog服务器通信时出现问题

openwrtssh能登陆管理页面登不了

同一台电脑 为啥有的QQ可以登上 有的就是登不上