Partilhar via


Diretrizes para pacotes

Como UAC ( de Controle de Conta de Usuário) no Windows Vista restringe privilégios durante uma instalação, os desenvolvedores de pacotes do Windows Installer não devem assumir que sua instalação sempre tem acesso a todas as partes do sistema.

Um pacote de instalação que pode ser implantado com êxito para usuários padrão por meio de Diretiva de Grupo deve, na maioria dos casos, também funcionar 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 baseada na propriedade Privileged. Os desenvolvedores de pacotes do Windows Installer devem, portanto, aderir às seguintes diretrizes para garantir que seus pacotes funcionem com o UAC e o Windows Vista.

  • Ao incluir um contexto de instalação condição com uma ação na tabela InstallUISequence, use uma instrução condicional com base na propriedade Privileged. Não use uma condição baseada na propriedade AdminUser.
  • Ao incluir o contexto de instalação com as condições de inicialização da instalação, use um Custom Action Type 19 na tabela InstallExecuteSequence e condicione a ação personalizada à 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 personalizada.
  • Omita o bit 3 do valor da propriedade Word Count Summary para indicar que o pacote pode ser solicitado a ser elevado. Não inclua este bit a menos que privilégios elevados não sejam necessários para instalar este 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 privilégios elevados forem necessários para instalar um pacote do Windows Installer, o autor do pacote deverá incluir o atributo ElevationShield para o de 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 Windows Installer que o pacote foi criado e testado para estar em conformidade com o UAC no Windows Vista. Se essa propriedade não estiver definida, o instalador determinará se o pacote está em conformidade com o UAC.

Fora de de Diretiva de Grupo, a seguinte verificação de conformidade com o UAC pode ser usada no Windows XP.

Para verificar a conformidade com o UAC fora do de Diretiva de Grupo

  1. Faça logon no computador como administrador.

  2. Anuncie o pacote para uma instalação por máquina:

    msiexec /jmpackage.msi

  3. Faça logoff do computador.

  4. Faça logon no computador como um usuário padrão.

  5. Tente instalar o pacote anunciado:

    msiexec /ipackage.msi

  6. Na maioria dos casos, se a instalação for bem-sucedida, o pacote é compatível com UAC.

  7. Defina a propriedadeMSIDEPLOYMENTCOMPLIANT no pacote como 1.

  8. Teste a instalação correta do pacote usando o Windows Vista.