Como usar o Windows Installer com o UAC

O Windows Installer está em conformidade com o UAC (Controle de Conta de Usuário) no Windows Vista. Com a autorização de um administrador, o Windows Installer pode instalar aplicativos ou patches em nome de um usuário que pode não ser membro do grupo Administradores. Isso é chamado de instalação elevada, porque o Windows Installer faz alterações no sistema em nome do usuário que normalmente não seriam permitidas se o usuário estivesse fazendo as alterações diretamente.

  • Quando o Windows Vista é usado em um ambiente corporativo, os aplicativos podem ser designados como aplicativos gerenciados. Usando a implantação de aplicativos e a Política de Grupo, os administradores podem bloquear diretórios e, em seguida, atribuir ou publicar os aplicativos gerenciados nesses diretórios a usuários padrão para instalação, reparo ou remoção. Os aplicativos gerenciados são registrados no hive do Registro HKEY_LOCAL_MACHINE. Depois que um aplicativo é registrado como um aplicativo gerenciado, as operações de instalação seguintes sempre são executadas com privilégios elevados. Se o usuário estiver em execução como administrador, nenhuma solicitação será necessária para continuar a instalação. Se o usuário estiver em execução como um usuário padrão e o aplicativo já tiver sido atribuído ou publicado, a instalação do aplicativo gerenciado poderá continuar sem solicitação.
  • Quando o Windows Vista é usado em um ambiente não corporativo, o UAC trata a elevação da instalação do aplicativo. O Windows Installer 4.0 pode chamar o AIS (Serviço de Informações de Aplicativos) para solicitar a autorização do administrador para elevar uma instalação. Para uma instalação identificada como exigindo privilégios de administrador seja executada, o UAC solicita ao usuário o consentimento para elevar a instalação. A solicitação de consentimento é exibida por padrão, mesmo que o usuário seja membro do grupo Administradores locais, pois os administradores executam programas como usuários padrão até que um aplicativo ou um componente do sistema que exija a permissão de solicitações de credenciais administrativas para execução. Essa experiência de usuário é chamada de AAM (Modo de Aprovação de Administrador). Se um usuário padrão tentar instalar o aplicativo, o usuário precisará obter um privilégio de administrador para fornecer as credenciais de administrador para continuar a instalação. Essa experiência de usuário é chamada de prompt de credencial OTS (Over The Shoulder).
  • Como o UAC restringe os privilégios durante as fases de uma instalação, os desenvolvedores de pacotes do Windows Installer não devem supor que a instalação sempre terá acesso a todas as partes do sistema. Portanto, os desenvolvedores de pacotes do Windows Installer devem seguir as diretrizes de pacote descritas em Diretrizes para pacotes para garantir que o pacote funcione com o UAC e o Windows Vista. Um pacote que foi criado e testado para seguir o UAC deve conter a propriedade MSIDEPLOYMENTCOMPLIANT definida como 1.
  • Um administrador também pode usar os métodos descritos na seção Como instalar um pacote com privilégios elevados para um não administrador para permitir que um usuário não administrador instale um aplicativo com privilégios elevados no sistema.
  • Os privilégios são necessários para instalar um aplicativo no contexto gerenciado por usuário e, portanto, reinstalações ou reparos seguintes do Windows Installer do aplicativo também são executados pelo instalador usando privilégios elevados. Isso significa que somente os patches de fontes confiáveis podem ser aplicados a um aplicativo no estado gerenciado por usuário. A partir do Windows Installer 3.0, você pode aplicar um patch a um aplicativo gerenciado por usuário depois que o patch é registrado como tendo privilégios elevados. Para obter informações, confira Como aplicar um patch aos aplicativos gerenciados por usuário.

Observação

Quando privilégios elevados não são necessários para instalar um pacote do Windows Installer, o autor do pacote pode suprimir a caixa de diálogo exibida pelo UAC para solicitar aos usuários a autorização de administrador. Para obter mais informações, confira Como criar pacotes sem a caixa de diálogo do UAC.