2015-01-13 36 views
2

我正在使用一个新的Wix安装程序。创建一个新用户并使用该用户安装Windows服务

  1. 我想要做的是将.exe复制到目录。
  2. 创建一个新用户。
  3. 使用该新用户安装Windows服务。

    <!-- Create User --> 
    <util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="yes" Name="ServiceUser" PasswordNeverExpires="yes" Password="secret" /> 
    
    <ServiceInstall Id="ServiceInstaller" 
                Type="ownProcess" 
                Vital="yes" 
                Name="Windows:service" 
                DisplayName="Windows service install" 
                Description="test" 
                Start="auto" 
                Account="ServiceUser" 
                Password="secret" 
                ErrorControl="ignore" 
                Interactive="no" /> 
    <ServiceControl Id="StartService" 
           Start="install" 
           Stop="both" 
           Remove="uninstall" 
           Name="Windows:service" 
           Wait="yes" /> 
    

创建用户工程,安装服务,只要我用我目前的登录名和密码的工作。但只要我尝试使用新用户,我会收到以下错误消息。

确认您拥有足够的权限安装系统服务

enter image description here

我试图运行MSI以管理员身份,并没有改变依然出现。我猜测这与我没有权限安装服务以在其他用途​​下运行有关。但这是一个猜测。

回答

2

您需要授予用户使用LogonAsService作为的Util ::用户元素的属性SeServiceLogonRight权利。

FWIW,该错误信息是非常通用的,通常是错误的,因为Windows安装程序不可能知道为什么你的服务没有正确响应(开始)。您可能还有其他问题(例如您的服务写入目录,即您的帐户有权访问服务帐户),但至少您有这个问题。

这里有一些乐趣。在该屏幕上,进入Services.msc并手动将服务切换到SYSTEM并返回到该帐户。您应该得到一个提示,说明该帐户已被授予权利。然后点击对话框中的重试。如果安装正常,那是您唯一的问题。

这个权限可以在组策略编辑器中看到。安装似乎从那时起工作,因为右侧已经由Services.msc设置在外部。使用组策略恢复虚拟机或删除正确的权限,问题就会恢复。修复安装程序,重新构建并重新测试,在安装过程中右侧应该自动被WiX应用。

+0

它实际上并没有出现安装服务。用户虽然安装。 – DaImTo

+0

你的wxs被编辑,所以很难说。你可以发布安装日志吗?你读过日志吗? –

+0

这是我第一个使用Wix的安装程序。安装日志?有一个安装日志!现在我得去找那个。 – DaImTo

1

除了LogonAsService,你需要指定它是本地计算机帐户:

Account=".\ServiceUser" 
+0

由于我使用了一个属性,我必须为本地帐户指定'Account =“。\ [SERVICEACCOUNT]”'。没有'。\'它失败了。 – bloudraak

相关问题