Domanda

Sto cercando di configurare un programma di installazione per alcuni software che utilizziamo all'interno dell'azienda.

L'installer viene inviato ai computer di destinazione tramite SMS ed esegue i seguenti passaggi:

  1. Termina qualsiasi istanza attualmente in esecuzione dell'app (l'app è un'utilità, quindi questo non ha alcun impatto sull'utente).
  2. Rimuovi la versione precedente.
  3. Installa la versione aggiornata.

Quello che vogliamo che faccia è lanciare l'eseguibile installato (come l'utente attualmente connesso, non l'account di sistema su cui viene eseguito il lavoro SMS) una volta completato il passaggio 3

Ho provato ad aggiungere un'azione personalizzata come segue:

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

E nell'elemento InstallExecuteSequence ho il seguente:

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

Tuttavia, quando proviamo questo, sia come processo SMS che come amministratore non succede nulla (ad es. l'app non viene riavviata).

Qualche suggerimento?

È stato utile?

Soluzione 2

Sfortunatamente sembra che ciò non sia possibile - suppongo che potrebbe essere un'opzione per scrivere un'estensione per l'MSI che fa quello che mi serve nel codice in qualche modo - anche se sembra un sacco di lavoro per una piccola ricompensa.

Quello che abbiamo deciso di fare è usare SMS per inviare un pacchetto incatenato, il principale che esegue la nostra applicazione, che dipende prima dall'installer in esecuzione.

Spero che questo aiuti qualcun altro :)

Altri suggerimenti

La soluzione che ho trovato è quella di avviare la nostra utility usando la chiave Esegui registro al login e di impedire l'avvio dell'utility durante l'installazione se l'utente corrente è "SYSTEM". - questo non era specificamente con SMS ma usando la distribuzione di AD / GPO. Tuttavia, alcuni dei nostri clienti utilizzano SMS e questa è stata la soluzione che ha funzionato per loro.

Problemi simili con Vista / Server 2008 UAC, l'unica soluzione affidabile che ho trovato è quella di pianificare un riavvio in modo che quando l'utente accede nuovamente all'utilità venga avviata nel contesto utente corretto.

Ho fatto un bel po 'di ricerche e ho consultato la documentazione MSI e sembra che non sia davvero possibile deselezionare i privilegi per lanciare un'utilità in background in quanto un altro utente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top