Partilhar via


Usando o Windows Installer com um Terminal Server

O seguinte pode afetar as instalações do Windows Installer ao usar um servidor de terminal. Os desenvolvedores de instalação devem sempre 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 diretiva de 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 efeito. Independentemente de 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 de utilizador único se a diretiva do sistema DisableUserInstalls estiver configurada para 1. Neste caso, o instalador ignora todas as aplicações registadas como por utilizador e procura apenas aplicações registadas como por máquina.
  • 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 seguintes diretrizes ao desenvolver um componente do Windows Installer que pode ser usado com um servidor de terminal.

  • Escreva todas as informações de registo HKCU na parte do registo de Software HKCU\.
  • O armazenamento de informações de configuração em arquivos INI não é recomendado.
  • Escreva informações por usuário no Registro quando o aplicativo for executado pela primeira vez e não no momento da instalação. Se você precisar gravar informações por usuário no Registro no momento da instalação, separe as informações por usuário e por máquina em diferentes componentes do Windows Installer. Crie o pacote de forma 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 utilizado apenas para instalações por cada máquina deve gravar variáveis de ambiente no ambiente do computador, incluindo * na coluna Nome da Tabela de Ambiente . Se o pacote puder ser usado para instalações por usuário ou por máquina, use dois componentes. Inclua o componente por usuário na Tabela de Componentes e insira as configurações do usuário na Tabela de Ambiente. Inclua o componente por máquina na Tabela de componentes e insira as configurações do computador na Tabela de ambiente. Controle qual componente é instalado usando instruções condicionais com base na propriedade ALLUSERS no campo Condition da Tabela de componentes.
  • Ao executar instalações por máquina a partir de um servidor de terminais, o instalador escreve as variáveis de ambiente por utilizador em HKCU\.Default\Ambiente. 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 reparem aplicativos, seu aplicativo deve lidar com o caso de chaves do Registro ausentes normalmente.

O seguinte se aplica quando um pacote do Windows Installer que usa DLL, EXE ou Script ações personalizadas é instalado no contexto de instalação por máquina em um servidor de terminal. Nesse caso, o instalador define a propriedade TerminalServer.

  • As ações personalizadas diferidas 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 é 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 cada usuário no computador.
  • Qualquer operação de registo numa ação personalizada adiada que lê da colmeia de registo HKCU vê a colmeia de registo padrão do sistema e não a colmeia de registo do utilizador atual.
  • Qualquer operação de registo numa ação personalizada adiada que escreva em HKCU \Software é detetada pelo instalador e copiada para cada utilizador do computador aquando do próximo início de sessão do utilizador.
  • Quaisquer operações no âmbito de uma ação personalizada diferida que escrevem em HKCU, mas não estão sob a chave de registo HKCU\Software, não são detetadas pelo instalador nem copiadas.

Para obter mais informações, consulte Serviços de Terminal no Microsoft Windows Software Development Kit (SDK).

EnableAdminTSRemote

propriedade TerminalServer

propriedade RemoteAdminTS

Serviços de Terminal