WiX - установить службу Windows и дать разрешения

Мы обязаны предоставить пользователю разрешения на запуск, остановку и запрос статуса установленной службы.

В 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, и они удалили атрибуты Service* из элемента Permission и больше не позволяют ему быть дочерним элементом элемента ServiceInstall.

Как получить такой же эффект в WiX 3.0?

В качестве обзора нам нужно:

Установите Сервис с:

  • Ручной запуск
  • Работает в локальной системе как "ownProcess"
  • Неинтерактивный с рабочим столом
  • Останавливается при удалении

Предоставьте пользователю "Все" доступ к:

  • Начните
  • Стоп
  • Статус запроса

На установленном сервисе.

1 ответ

Решение

Документация говорит, что используйте это внутри элемента 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" />

Я не пробовал

Пространство имен утилит xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"

Другие вопросы по тегам