WiX - Install Windows Service and give permissions

二次信任 提交于 2019-12-04 18:23:59

问题


We are required to give a user permissions to Start, Stop, and Query status of an installed service.

In WiX 2.0, this xml would have worked:

<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" />

We're using WiX 3.0, and they removed the Service* attributes from the Permission element, and no longer allow it to be a child of a ServiceInstall element.

How do we get the same effect in WiX 3.0?

As an overview, we need:

Install a Service with:

  • Manual startup
  • Runs under Local System as "ownProcess"
  • Non-interactive with desktop
  • Stops on uninstall

Give the "Everyone" user access to:

  • Start
  • Stop
  • Query Status

On the installed service.


回答1:


Documentation says use this inside the ServiceInstall element:

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

I haven't tried it

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



来源:https://stackoverflow.com/questions/2381219/wix-install-windows-service-and-give-permissions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!