processo executar como utilizador normal da MSI (wix) sob contexto diferente
-
03-07-2019 - |
Pergunta
Eu estou tentando configurar um instalador para algum software que usamos dentro da empresa.
O instalador é empurrado para fora para máquinas de destino através de SMS, e ele executa as seguintes etapas:
- Terminar todas as instâncias em execução do aplicativo (o aplicativo é um utilitário, de modo que este não é um impacto sobre o usuário).
- Remova a versão anterior.
- instalar a versão atualizada.
O que quer que ele faça é o lançamento instalado executável (como o usuário conectado no momento, não a conta do sistema que as execuções de tarefa SMS como) uma vez o passo 3 for concluída.
Eu tentei adicionar uma ação personalizada da seguinte forma:
<CustomAction Id="Relaunch" Impersonate="yes" Return="asyncNoWait" FileKey="AppExeFile" Execute="commit" ExeCommand="acm" />
E no elemento InstallExecuteSequence
eu tenho a seguinte:
<Custom Action="Relaunch" OnExit="success" />
No entanto, quando tentamos isso, quer como um trabalho SMS ou executar como administrador não acontece nada (por exemplo, o aplicativo não é relançada).
Todas as sugestões?
Solução 2
Infelizmente parece isso não é possível - Acho que pode ser uma opção para escrever uma extensão para o MSI que faz o que eu preciso no código de alguma forma - embora parece um monte de trabalho para uma pequena recompensa.
O que nós decidimos fazer é usar o SMS para enviar um pacote encadeado -. A primária que executa nossa aplicação, que pela primeira vez depende do instalador a ser executado
Espero que isso ajude alguém:)
Outras dicas
A solução que eu vim acima com é começar a nossa utilidade usando a chave de registro Run no início da sessão, e para prevenir de lançar o utilitário durante a instalação se o usuário atual é "SYSTEM" - isto não foi especificamente com o SMS, mas utilizando implantação do AD / GPO. No entanto, alguns de nossos clientes estão usando SMS e esta foi a solução que funcionou para eles.
problemas similares com Vista / Server 2008 UAC, a única solução confiável que eu vim acima com o que há para agendar uma reinicialização para que quando o usuário fizer backup no utilitário é lançado sob o contexto de usuário correto.
Eu fiz um pouco de pesquisa e olhando através de documentação MSI e parece que os privilégios de-elevatórias de lançar um utilitário de fundo como outro usuário não é realmente possível.