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,密码自己改了,现在登不了,重买光猫网络能用?