Exécuter le processus en tant qu'utilisateur normal à partir de MSI (Wix) dans un contexte différent

StackOverflow https://stackoverflow.com/questions/406133

  •  03-07-2019
  •  | 
  •  

Question

J'essaie de configurer un programme d'installation pour certains logiciels que nous utilisons au sein de l'entreprise.

Le programme d'installation est envoyé aux machines cibles via SMS et exécute les étapes suivantes:

  1. Terminez toutes les instances de l'application en cours d'exécution (l'application est un utilitaire, donc cela n'a pas d'incidence sur l'utilisateur).
  2. Supprimer la version précédente.
  3. Installez la version mise à jour.

Ce que nous souhaitons, c’est lancer l’exécutable installé (en tant qu’utilisateur actuellement connecté, et non pas le compte système sous lequel le travail SMS est exécuté) une fois l’étape 3 terminée.

J'ai essayé d'ajouter une action personnalisée comme suit:

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

Et dans l'élément InstallExecuteSequence , j'ai les éléments suivants:

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

Cependant, lorsque nous essayons cela, que ce soit en tant que tâche SMS ou en tant qu'exécutant en tant qu'administrateur, rien ne se passe (par exemple, l'application n'est pas relancée).

Des suggestions?

Était-ce utile?

La solution 2

Malheureusement, il semblerait que ce ne soit pas possible - je suppose que cela pourrait être une option d'écrire une extension pour le MSI qui fait ce que j'ai besoin dans le code - bien que cela semble beaucoup de travail pour une petite récompense.

Ce que nous avons décidé de faire, c’est d’utiliser SMS pour envoyer un paquet chaîné - le paquet principal qui exécute notre application, qui dépend d’abord du programme d’installation exécuté.

J'espère que cela aidera quelqu'un d'autre:)

Autres conseils

La solution que j'ai proposée consiste à démarrer notre utilitaire à l'aide de la clé de registre Run lors de la connexion, et à empêcher son lancement lors de l'installation si l'utilisateur actuel est "SYSTEM". - Ce n'était pas spécifiquement avec SMS mais en utilisant le déploiement AD / GPO. Cependant, certains de nos clients utilisent les SMS et c’est la solution qui a fonctionné pour eux.

Des problèmes similaires avec Vista / Server 2008 UAC, la seule solution fiable que je connaisse consiste à planifier un redémarrage de sorte que, lorsque l'utilisateur se reconnecte, l'utilitaire est lancé dans le contexte utilisateur approprié.

J'ai fait pas mal de recherches et une recherche dans la documentation MSI et il semble que supprimer les privilèges permettant de lancer un utilitaire d'arrière-plan en tant qu'un autre utilisateur ne soit pas vraiment possible.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top