我已经处理这个问题四年了,它让我非常烦恼。
- 我的公司使用 wix 工具集生成 msi 安装程序,并创建多个 Windows 服务。这些服务使用 AD 服务用户 + 密码运行。这些服务是使用我在安装程序 UI 中输入的用户和“密码”创建的,但总是无法启动。第一个要启动的服务卡在“开始”地位。
最终它会锁定服务用户,就像密码不正确一样。我保证我在 msi UI 中输入的密码是正确的。
因此,在安装过程中,第一个服务开始,我只需打开该服务并更新密码即可登录标签并保存,然后神奇的是,它启动了,全部其他服务也启动了。为什么?为什么我必须只更改一个服务的密码才能使其他服务正常运行?
- 问题是一样的,如果我让安装程序使用 创建服务
LocalSystem
,它们会正常启动。然后我会sc config
像我们所有人一样,使用 更新服务用户和密码。它们会以同样的方式全部无法启动。直到我更新其中一个的密码,它们才会全部启动。
我做错了什么?什么可以解释这种行为?
编辑:AD 服务用户确实具有登录为服务权限,否则服务将永远不会启动。编辑:第一次启动失败时,事件日志显示:“xyz 服务服务无法使用当前配置的密码以 DOMAIN\username 身份登录,原因是出现以下错误:登录失败:未授予用户在此计算机上请求的登录类型。”
后续错误都是一样的:“xyz Service 服务由于以下错误而无法启动:由于登录失败,该服务未启动。”
答案1
只需将此链接到登录权限错误即可,
这些服务是否相互依赖?
您知道不存在语法或字符串解释问题吗?您可以尝试使用几种不同的方法通过 powershell 创建服务或设置服务凭据,但您似乎指出,在第一个服务启动后,其余服务无需更新凭据即可成功启动。
请尝试使用 UPN 格式 username@domain ,因为有时 Domain\Username 会出现问题。