Elevando o instalador do Windows no Vista

1

O Vista requer direitos elevados para instaladores que instalam drivers ou outros itens do sistema. A Pointsec tem um desses instaladores com o problema de que o próprio instalador não solicita elevação, portanto a elevação deve ser concedida a ele de antemão.

Ao instalar este software em vários computadores, desabilitar o UAC, instalar o software e, em seguida, reativar o UAC é bastante entediante. Uma forma de cuidar do UAC seria preferida.

O instalador é um pacote MSI em um compartilhamento de rede. O compartilhamento também possui o perfil de instalação que o instalador deve encontrar e usar na instalação. Isso funciona bem sem o UAC, mas não conseguimos fazer isso com o UAC.

Meu principal problema é que, ao elevar o processo, parece perder seu diretório de trabalho. Então, enquanto um atalho para msiexec com parâmetros corretos e o compartilhamento de rede como o diretório de trabalho funciona (ie. Inicia, mas erros devido a nenhuma elevação) executar este atalho 'como administrador' se queixa de não encontrar o pacote msi. O Process Monitor mostra o msiexec tentando encontrar o pacote do Windows \ System32. Especificar o caminho UNC completo para o pacote inicia o instalador, mas não consegue localizar o arquivo de perfil. Então, qual é a maneira correta de elevar um instalador do Windows que não solicita a elevação em si?

    
por Mikko Rantanen 01.05.2009 / 02:36

3 respostas

4

Basicamente, você tem um instalador mal projetado.

O que você poderia tentar é definir a propriedade ALLUSERS na tabela de propriedades como 1 (usando o Orca, procure por Orca.msi no SDK do Windows Installer ) que forçará uma instalação por máquina.

Nesse caso, o instalador solicitará a elevação parcial durante a instalação ( é assim O UAC + MSI deve funcionar e você deve estar bem.

    
por 01.05.2009 / 02:59
0

A postagem Por que meu diretório inicial é ignorado quando eu elevo um prompt de comando? no blog de Raymond Chen pode ser relevante aqui.

Eu também sei que algumas das heurísticas de elevação são muito simplistas, por ex. se o arquivo tiver o nome "setup" ou "install", ele solicitará a elevação. Não consigo encontrar minha fonte para isso no momento.

Não é uma resposta altamente técnica, mas talvez seja útil.

    
por 01.05.2009 / 03:23
0

Uma abordagem seria executar um prompt de comando elevado, alterar o diretório de trabalho lá e executar o instalador a partir daí. Qualquer coisa lançada a partir de um cmd.exe elevado é elevada.

    
por 05.05.2009 / 16:41