Pregunta

Estoy intentando configurar un instalador para algún software que usamos dentro de la compañía.

El instalador se envía a las máquinas de destino a través de SMS y realiza los siguientes pasos:

  1. Termine cualquier instancia actualmente en ejecución de la aplicación (la aplicación es una utilidad, por lo que no es un impacto para el usuario).
  2. Eliminar la versión anterior.
  3. Instala la versión actualizada.

Lo que queremos que haga es iniciar el archivo ejecutable instalado (como el usuario que está conectado actualmente, no la cuenta del sistema con la que se ejecuta el trabajo de SMS) una vez que se complete el paso 3.

He intentado agregar una acción personalizada de la siguiente manera:

<CustomAction Id="Relaunch" Impersonate="yes" Return="asyncNoWait" FileKey="AppExeFile" Execute="commit" ExeCommand="acm" />

Y en el elemento InstallExecuteSequence tengo lo siguiente:

<Custom Action="Relaunch" OnExit="success" />

Sin embargo, cuando intentamos esto, ya sea como un trabajo de SMS o como un administrador, no ocurre nada (por ejemplo, la aplicación no se reinicia).

¿Alguna sugerencia?

¿Fue útil?

Solución 2

Lamentablemente, parece que esto no es posible (supongo que podría ser una opción para escribir una extensión para el MSI que hace lo que necesito en código de alguna manera), aunque parece mucho trabajo por una pequeña recompensa.

Lo que decidimos hacer es usar SMS para enviar un paquete encadenado, el principal que ejecuta nuestra aplicación, que primero depende de la instalación del instalador.

Espero que esto ayude a alguien más :)

Otros consejos

La solución que he encontrado es iniciar nuestra utilidad utilizando la clave de registro Ejecutar al iniciar sesión, y evitar el inicio de la utilidad durante la instalación si el usuario actual es " SISTEMA " - Esto no fue específicamente con SMS, sino con el uso de AD / GPO. Sin embargo, algunos de nuestros clientes están utilizando SMS y esta fue la solución que les funcionó.

Problemas similares con Vista / Server 2008 UAC, la única solución confiable que he encontrado es programar un reinicio para que cuando el usuario inicie sesión en la utilidad se inicie en el contexto de usuario correcto.

He investigado bastante y revisado la documentación de MSI y parece que no es posible elevar los privilegios para lanzar una utilidad en segundo plano, ya que otro usuario no puede hacerlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top