Utilisation de Windows Installer avec un Terminal Server

Les éléments suivants peuvent affecter les installations de Windows Installer lors de l’utilisation d’un serveur Terminal Server. Les développeurs d’installation doivent toujours vérifier que leur package Windows Installer s’installe comme prévu lorsque les utilisateurs se servent également d’un serveur Terminal Server.

  • Sur les systèmes d’exploitation antérieurs à Windows Server 2008 et Windows Vista, la règle système EnableAdminTSRemote doit être activée pour permettre aux administrateurs d’effectuer des installations dans la session client. À partir de Windows Server 2008 et Windows Vista, la règle EnableAdminTSRemote n’a plus d’effet. Quel que soit son paramètre, les administrateurs et les non-administrateurs peuvent effectuer une installation dans la session cliente ou la session de console. Les administrateurs et les non-administrateurs peuvent toujours effectuer des installations de Windows Installer dans la session de console.
  • Windows Installer empêche l’installation dans le contexte d’installation par utilisateur si la règle de systèmeDisableUserInstalls est définie sur 1. Dans ce cas, le programme d’installation ignore toutes les applications inscrites en tant qu’utilisateur et recherche uniquement les applications inscrites par ordinateur.
  • Lorsqu’un administrateur effectue une installation dans une session client d’un serveur terminal hébergé dans Windows 2000, l’installation doit utiliser un chemin d’accès UNC et non une lettre de lecteur mappée.

Les développeurs doivent respecter les instructions suivantes lors du développement d’un composant Windows Installer qui peut être utilisé avec un serveur Terminal Server.

  • Écrivez toutes les informations du registre HKCU dans la partie HKCU\Software du registre.
  • Le stockage des informations de configuration dans les fichiers INI n’est pas recommandé.
  • Écrire des informations par utilisateur dans le registre lorsque l’application est exécutée pour la première fois, et non au moment de l’installation. Si vous devez écrire des informations par utilisateur dans le Registre au moment de l’installation, séparez les informations par utilisateur et par machine en différents composants Windows Installer. Créez le package de sorte que le programme d’installation ne tente pas de valider et de réparer les composants contenant les informations de chaque utilisateur lors de l’installation de l’application.
  • Un package utilisé pour les installations par ordinateur doit écrire des variables d’environnement dans celui de l’ordinateur en incluant * dans la colonne Nom de la Table Environnement. Si le package peut être utilisé pour des installations par utilisateur ou par machine, utilisez deux composants. Incluez le composant par utilisateur dans la table Composants et entrez les paramètres utilisateur dans la table Environnement. Incluez le composant par ordinateur dans la table des composants et entrez les paramètres de l’ordinateur dans la table Environnement. Contrôlez le composant installé à l’aide d’instructions conditionnelles basées sur la propriété ALLUSERS dans le champ Conditions de la table de Composants.
  • Lorsque vous effectuez des installations par ordinateur à partir d’un serveur Terminal Server, le programme d’installation écrit des variables d’environnement par utilisateur dans HKU\.Default\Environment. Étant donné que le serveur Terminal Server ne réplique pas cette section du registre, l’installation ne définit pas les variables d’environnement par utilisateur.
  • Étant donné qu’un serveur peut être configuré pour empêcher les utilisateurs de réparer des applications, votre application doit gérer correctement le cas de clés de registres manquantes.

Ce qui suit s’applique lorsqu’un package Windows Installer qui utilise des actions personnalisées DLL, EXE ou Script est installé dans le contexte d’installation par ordinateur sur un serveur Terminal Server. Dans ce cas, le programme d’installation définit la propriété TerminalServer .

  • Les actions personnalisées différées s’exécutent dans le contexte du système local, sauf si l’action a l’attribut msidbCustomActionTypeTSAware . Cela est vrai même si l’action personnalisée emprunte l’identité de l’utilisateur sur un système qui n’est pas un serveur Terminal Server. Notez que si une action personnalisée ayant l’attribut msidbCustomActionTypeTSAware modifie le registre de l’utilisateur, le programme d’installation ne garantit pas automatiquement que ces modifications soient également effectuées dans le registre de chaque utilisateur sur l’ordinateur.
  • Toutes les opérations de registre d’une action personnalisée différée capables de lire à partir de la ruche du registre HKCU voient la ruche de registre par défaut du système et non la ruche de registre de l’utilisateur actuel.
  • Toutes les opérations de registre d’une action personnalisée différée qui écrivent dans HKCU\Software sont détectées par le programme d’installation et seront copiées sur chaque utilisateur de l’ordinateur à la prochaine ouverture de session.
  • Toutes les opérations de registre d’une action personnalisée différée qui écrivent dans HKCU, mais ne sont pas sous la clé de registre HKCU\Software , ne sont pas détectées par le programme d’installation, ni copiées.

Pour plus d’informations, consultez Terminal Services dans le Kit de développement logiciel (SDK) Microsoft Windows.

EnableAdminTSRemote

Propriété TerminalServer

Propriété RemoteAdminTS

Terminal Services