wix - sirve - sintaxis powershell
WiX ServiceInstall: configurar el servicio para que se ejecute como el usuario actual de Windows (1)
Estoy instalando un servicio de Windows usando WiX. ¿Cómo puedo hacer que el servicio se ejecute en el contexto del usuario de Windows que ejecuta el instalador?
Debe tener tanto el nombre de cuenta como la contraseña del usuario con el que desea ejecutar el servicio. Pude lograr esto agregando una IU personalizada a mi instalador solicitando un Nombre de usuario y una Contraseña, y luego usando los valores suministrados para los atributos de Cuenta y Contraseña en el elemento ServiceInsall.
Tenga en cuenta que cualquiera que sea la cuenta que se use para ejecutar el servicio deberá tener privilegiado el Servicio de inicio de sesión. Esto no se otorga a los usuarios por defecto. Pude usar el elemento User del esquema UtilExtension para agregar este priveledge al usuario. Agregar el privilegiado al usuario solo tendría éxito si el usuario que ejecuta el instalador es un administrador.
Aquí está el código que utilicé. SERVICECREDENTIALS_USERLOGIN y SERVICECREDENTIALS_PASSWORD son las propiedades que se rellenan desde la IU personalizada.
<Component Id="ServiceEXE" Guid="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx">
<File Id="ServiceEXE" Name="YourService.exe" DiskId="1"
Source="path/to/YourService.exe" KeyPath="yes" />
<util:User Id="UpdateUserLogonAsService" UpdateIfExists="yes" CreateUser="no" Name="[SERVICECREDENTIALS_USERLOGIN]"
LogonAsService="yes" />
<ServiceInstall Id="ServiceInstall" Type="ownProcess" Vital="yes" Name="YourService"
DisplayName="Your Service" Description="Your Service description"
Start="auto" Account="[SERVICECREDENTIALS_USERLOGIN]" Password="[SERVICECREDENTIALS_PASSWORD]"
ErrorControl="normal" Interactive="no" />
<ServiceControl Id="StartService" Start="install" Stop="both" Remove="uninstall" Name="YourService" Wait="yes" />
</Component>