首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MSI serviceInstall失败,服务无法在某些计算机上启动,但在其他计算机上不能启动

MSI serviceInstall失败,服务无法在某些计算机上启动,但在其他计算机上不能启动
EN

Stack Overflow用户
提问于 2011-02-23 08:07:44
回答 2查看 2.9K关注 0票数 2

所以我有一个部署服务的MSI。

代码语言:javascript
代码运行次数:0
运行
复制
        <ServiceInstall Id='ServiceInstall' ErrorControl='ignore' Type='ownProcess' DisplayName='MetricsReportingService' Description='It does metrics reporting' Name='MetricsReportingService' Start='auto' Account='[SERVICEACCOUNT]' Password='[SERVICEACCOUNTPASSWORD]' /> 
        <ServiceControl Id='MetricsReportingService' Remove='uninstall' Name='MetricsReportingService' Start='install' Stop='both' Wait='yes' />

当我在我自己的机器上部署这个服务时,部署工作很好,但是当我在另一个人的机器上部署时,我得到了错误1920,服务无法启动。

现在,我在两台计算机上使用完全相同的服务帐户和密码(该帐户在两台计算机上都具有管理员权限)。实际上,我在两台机器上使用了所有相同的参数,但在一台机器上通过了,而在另一台机器上却失败了。

我没有看到来自我的服务的任何事件日志记录,所以它似乎没有出现在我的代码中。

造成这种差异的可能原因是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-02-23 16:26:31

在为自定义用户帐户安装服务时,您需要确保该帐户具有启动服务的权限(默认情况下它没有这些权限)。一种解决方案是通过使用ntrights.exe作为自定义操作来设置这些权限:http://support.microsoft.com/kb/315276

例如,您可以使用以下命令行:

代码语言:javascript
代码运行次数:0
运行
复制
ntrights.exe -u [SERVICEACCOUNT] +r SeServiceLogonRight

您还可以尝试使用通过自定义代码设置权限的DLL自定义操作。此自定义操作应在安装服务之前运行。

票数 1
EN

Stack Overflow用户

发布于 2013-11-22 19:59:27

在我的例子中,我还必须向user添加用户权限。我用自定义操作和this code做到了这一点。它不需要在Win8和Server2008 R2上添加用户权限就可以工作。它在Win 7或Win XP上不起作用。希望能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5085594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档