Usar o Windows Installer com um servidor de terminal
As instalações do Windows Installer quando usadas com um servidor de terminal podem ser afetadas pelo seguinte. Os desenvolvedores de instalação sempre devem testar se o pacote do Windows Installer é instalado conforme o esperado quando os usuários também estão usando um servidor de terminal.
- Em sistemas operacionais anteriores ao Windows Server 2008 e ao Windows Vista, a política do sistema EnableAdminTSRemote deve ser definida para permitir que os administradores executem instalações na sessão do cliente. A partir do Windows Server 2008 e do Windows Vista, a política EnableAdminTSRemote não tem mais nenhum efeito. Sem importar sua configuração, administradores e não administradores podem executar uma instalação na sessão do cliente ou na sessão do console. Administradores e não administradores sempre podem executar instalações do Windows Installer na sessão do console.
- O Windows Installer impede a instalação no contexto de instalação por usuário se a política do sistemaDisableUserInstalls estiver definida como 1. Nesse caso, o instalador ignora todos os aplicativos registrados como por usuário e pesquisa apenas aplicativos registrados como por computador.
- Quando um administrador executa uma instalação em uma sessão de cliente de um servidor de terminal hospedado no Windows 2000, a instalação deve usar um caminho UNC e não uma letra de unidade mapeada.
Os desenvolvedores devem seguir as diretrizes a seguir ao desenvolver um componente do Windows Installer que pode ser usado com um servidor de terminal.
- Grave todas as informações do registro HKCU na parte de Software\HKCU do registro.
- Não é recomendável armazenar informações de configuração em arquivos INI.
- Grave informações por usuário no registro quando o aplicativo for executado pela primeira vez e não no momento da instalação. Se precisar gravar informações por usuário no registro no momento da instalação, separe as informações por usuário e por computador em diferentes componentes do Windows Installer. Crie o pacote de modo que o instalador não tente validar e reparar os componentes que contêm informações por usuário quando o aplicativo é instalado.
- Um pacote usado somente para instalações por computador deve gravar variáveis de ambiente no ambiente do computador incluindo * na coluna Name da Tabela Environment. Se o pacote puder ser usado para instalações por usuário ou instalações por computador, use dois componentes. Inclua o componente por usuário na Tabela Component e insira as configurações do usuário na Tabela Environment. Inclua o componente por computador na Tabela Component e insira as configurações do computador na Tabela Environment. Controle qual componente é instalado usando instruções condicionais com base na propriedade ALLUSERS no campo Condition da Tabela Component.
- Ao executar instalações por computador por meio de um servidor de terminal, o instalador grava variáveis de ambiente por usuário em HKCU\.Default\Environment. Como o servidor de terminal não replica esta seção do registro, a instalação não define as variáveis de ambiente por usuário.
- Como um servidor pode ser configurado para impedir que os usuários consertem aplicativos, seu aplicativo deve lidar com o caso de chaves de registro ausentes normalmente.
O seguinte se aplica quando um pacote do Windows Installer que usa ações personalizadas de DLL, EXE ou Script é instalado no contexto de instalação por computador em um servidor de terminal. Nesse caso, o instalador define a propriedade TerminalServer.
- Ações personalizadas adiadas são executadas no contexto do sistema local, a menos que a ação tenha o atributo msidbCustomActionTypeTSAware. Isso é verdadeiro mesmo se a ação personalizada representar o usuário em um sistema que não seja um servidor de terminal. Observe que, se uma ação personalizada com o atributo msidbCustomActionTypeTSAware alterar o registro do usuário, o instalador não garantirá automaticamente que essas alterações também sejam feitas no registro de todos os usuários no computador.
- Todas as operações do Registro em uma ação personalizada adiada que leem do hive do registro HKCU veem o hive de registro padrão do sistema e não o hive do registro do usuário atual.
- Todas as operações de registro em uma ação personalizada adiada que gravam no Software\HKCU são detectadas pelo instalador e copiadas para cada usuário do computador no próximo logon do usuário.
- Todas as operações de registro em uma ação personalizada adiada que gravam no HKCU, mas não estão sob a chave de registro Software\HKCU, não são detectadas pelo instalador ou copiadas.
Para obter mais informações, consulte Serviços de terminal no SDK (Microsoft Windows Software Development Kit).
Tópicos relacionados