windows-services wix wix3 serviceinstall

windows services - WIX ServiceInstall: configurar el servicio para que se ejecute en la cuenta NetworkService



windows-services wix3 (4)

Parece que algunos remanentes de una instalación fallida anteriormente me impedían eliminar y volver a instalar con Account = "NT Authority / NetworkService". Todo está bien en el universo otra vez.

Intento crear un instalador WIX para instalar mi servicio de Windows para que se ejecute bajo la cuenta de NetworkService y obtener un error de Priviledges Insuficiente durante la instalación.

Encontré esta publicación donde alguien parece estar experimentando el mismo problema, pero no se ofreció una solución real:

http://n2.nabble.com/Re-WiX-users-Digest-Vol-40-Issue-129-td3782055.html

Estoy seguro de que alguien debe haber logrado esto anteriormente y se preguntó si tendrían la amabilidad de compartir un fragmento de código.


NOTA: La respuesta a continuación solo es relevante en las versiones anteriores de WIX y Windows en el momento en que se planteó la pregunta. La versión actual de las credenciales del servicio WIX funcionará si configura el dominio nativo "NT AUTHORITY" y la cuenta "NetworkService" (no es necesario ahora).

Respuesta Original:

El nombre de identidad correcto es "NT Authority / Network Service", no "NT Authority / NetworkService". Se requiere un espacio y luego funciona.

Es curioso que el "LocalSystem" predeterminado funcione directamente con WIX 3.5, pero para otras cuentas conocidas, debe agregar "NT Authority ...", por ejemplo, "LocalService" no funciona cuando se usa directamente.

es decir, corrige esto con:

Cuenta = ''Autoridad NT / Servicio de red''


Usé customAction para encontrar que las credenciales del usuario son correctas o no.

Si las credenciales del usuario coinciden con la cuenta en la máquina que desean instalar, les permitiré pasar al siguiente cuadro de diálogo (UI), de lo contrario, mostraré otro cuadro de diálogo que indica al usuario que no se encontró esa cuenta.


Tuve el siguiente fragmento de trabajo en Windows 8.1 FR y Windows 2012R2 ENU. Pero el uso de NT AUTHORITY/NETWORK SERVICE falló con el error de privilegios insuficientes .

Por lo tanto, al menos en sistemas recientes, debe usar NT AUTHORITY/NETWORKSERVICE como se documenta en MSDN .

<ServiceInstall Id="xserviceInstall" Name="$(var.xServiceid)" DisplayName="$(var.xServiceid)" Description="x service" Start="auto" Type="ownProcess" ErrorControl="ignore" Account="NT AUTHORITY/NETWORKSERVICE" Arguments="-w -N" Vital="yes" />