WiX - 安装Windows服务并授予权限

时间:2010-03-04 17:10:35

标签: .net windows-services wix windows-installer

我们需要授予用户对已安装服务的启动,停止和查询状态的权限。

在WiX 2.0中,这个xml会起作用:

<ServiceInstall
    Id="ServiceInstaller" Type="ownProcess"
    Name="$(var.ServiceName)" DisplayName="$(var.ServiceName)" Description="Our service description"
    Start="demand" Account="LocalSystem" ErrorControl="ignore" Interactive="no">
    <Permission User="Everyone" ServiceQueryStatus="yes" ServiceStart="yes" ServiceStop="yes" />
</ServiceInstall>
<ServiceControl Id="StopService" Stop="both" Remove="uninstall" Name="$(var.OmniVpnServiceName)" Wait="yes" />

我们正在使用WiX 3.0,他们从Permission元素中删除了Service *属性,不再允许它成为ServiceInstall元素的子元素。

我们如何在WiX 3.0中获得相同的效果?

作为概述,我们需要:

使用以下命令安装服务:

  • 手动启动
  • 在Local System下运行为“ownProcess”
  • 非桌面互动
  • 停止卸载

授予“所有人”用户访问权限:

  • 开始
  • 停止
  • 查询状态

在已安装的服务上。

1 个答案:

答案 0 :(得分:18)

文档说在ServiceInstall元素中使用它:

<util:PermissionEx
    User="Everyone"
    GenericAll="yes"
    ServiceChangeConfig="yes"
    ServiceEnumerateDependents="yes"
    ChangePermission="yes"
    ServiceInterrogate="yes"
    ServicePauseContinue="yes"
    ServiceQueryConfig="yes"
    ServiceQueryStatus="yes"
    ServiceStart="yes"
    ServiceStop="yes" />

我还没试过呢

util namespace是xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"