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

Windows services MSI serviceInstall失败,服务无法在某些计算机上启动,但在其他计算机上无法启动,windows-services,wix,windows-installer,Windows Services,Wix,Windows Installer,所以我有一个MSI,它部署了一个服务 <ServiceInstall Id='ServiceInstall' ErrorControl='ignore' Type='ownProcess' DisplayName='MetricsReportingService' Description='It does metrics reporting' Name='MetricsReportingService' Start='auto' Account='[SERVICEACCOU

所以我有一个MSI,它部署了一个服务

        <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,服务无法启动

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

我没有从我的服务中看到任何事件日志记录,因此它似乎没有写入到我的代码中


是什么导致了这种差异

为自定义用户帐户安装服务时,您需要确保该帐户具有启动服务的权限(默认情况下没有)。解决方案是将ntrights.exe用作自定义操作来设置这些权限:

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

ntrights.exe -u [SERVICEACCOUNT] +r SeServiceLogonRight

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

在我的情况下,我还必须向用户添加用户权限。我用习惯的动作和动作完成了。它没有在Win8和Server2008R2上添加用户权限。它在Win 7或Win XP上不起作用。希望能有所帮助。

我认为这与Server2008R2相当。您可以将Wait='no'设置为允许安装在尝试启动服务之前完成。这样你就可以试着在本地启动它。