Diretrizes para pacotes
Como o Controle de Conta de Usuário (UAC) em Windows Vista restringe privilégios durante uma instalação, os desenvolvedores de pacotes do instalador de Windows não devem assumir que sua instalação sempre tem acesso a todas as partes do sistema.
Um pacote do instalador que pode ser implantado com êxito em usuários padrão por meio de Política de Grupo deve, na maioria dos casos, também trabalhar com o UAC no Windows Vista. Exceções a isso podem ocorrer se a tabela InstallUISequence contiver a ação LaunchConditions ou a tabela LaunchCondition contiver uma condição com base na propriedade Privileged. Windows desenvolvedores de pacotes do Instalador devem, portanto, seguir as diretrizes a seguir para garantir que seu pacote funcione com o UAC e Windows Vista.
- Ao incluir uma condição de contexto de instalação com uma ação na tabela InstallUISequence, use uma instrução condicional com base na propriedade Privileged. Não use uma condição com base na propriedade AdminUser .
- Ao incluir o contexto de instalação com as condições de inicialização da instalação, use um Tipo de Ação Personalizada 19 na tabela InstallExecuteSequence e torne a ação personalizada condicional na propriedade Privileged. Não use uma ação na tabela LaunchCondition com uma condição baseada na propriedade AdminUser ou na propriedade Privileged.
- Para ler ou modificar a configuração do sistema, use uma ação personalizada de execução adiada na tabela InstallExecuteSequence. Não use ações personalizadas de execução imediata na tabela InstallUISequence para modificar a configuração do sistema.
- Para modificar partes do sistema que não são específicas do usuário, use uma ação personalizada adiada na tabela InstallExecuteSequence. Você deve incluir o bit msidbCustomActionTypeNoImpersonate no tipo de ação personalizado.
- Omita o Bit 3 do valor da Propriedade Resumo da Contagem de Palavras para indicar que o pacote pode ser necessário para ser elevado. Não inclua esse bit, a menos que privilégios elevados não sejam necessários para instalar esse pacote.
- Inclua um manifesto com o nível de execução solicitado do aplicativo.
- Inclua um certificado na tabela MsiPatchCertificate do pacote original e assine todos os patches com o mesmo certificado.
- Se forem necessários privilégios elevados para instalar um pacote Windows Installer, o autor do pacote deverá incluir o atributo ElevationShield para o controle PushButton usado para iniciar a instalação. Isso alertará o usuário de que clicar no botão exibirá a caixa de diálogo UAC solicitando autorização do administrador para continuar a instalação.
- Defina a propriedade MSIDEPLOYMENTCOMPLIANT como 1 para indicar ao instalador do Windows que o pacote foi criado e testado para estar em conformidade com o UAC em Windows Vista. Se essa propriedade não estiver definida, o instalador determinará se o pacote está em conformidade com o UAC.
Fora Política de Grupo, a verificação a seguir para a conformidade do UAC pode ser usada em Windows XP.
Para verificar a conformidade da UAC fora do Política de Grupo
Faça logon no computador como administrador.
Anuncie o pacote para uma instalação por computador:
msiexec /jmpackage.msi
Faça logon do computador.
Faça logon no computador como um usuário padrão.
Tente instalar o pacote anunciado:
msiexec /ipackage.msi
Na maioria dos casos, se a instalação for bem-sucedida, o pacote será compatível com UAC.
Defina a propriedade MSIDEPLOYMENTCOMPLIANT no pacote como 1.
Teste a instalação correta do pacote usando Windows Vista.