Partager via


Recommandations en matière de packages

Le contrôle de compte d’utilisateur (UAC) restreint les privilèges pendant une installation. De ce fait, les développeurs de packages Windows Installer ne doivent pas supposer que leur installation a toujours accès à toutes les parties du système.

Un package d’installation qui peut être correctement déployé sur les utilisateurs standard par le biais d’une stratégie de groupe doit dans la plupart des cas également fonctionner avec l’UAC dans Windows Vista. Des exceptions peuvent se produire si la table InstallUISequence contient l’action LaunchConditions ou que la table LaunchCondition contient une condition basée sur la propriété Privileged. Les développeurs de packages Windows Installer doivent donc respecter les recommandations suivantes pour s’assurer que leur package fonctionne avec l’UAC et Windows Vista.

  • Quand vous incluez une condition de contexte d’installation avec une action dans la table InstallUISequence, utilisez une instruction conditionnelle basée sur la propriété Privileged. N’utilisez pas de condition basée sur la propriété AdminUser.
  • Quand vous incluez le contexte d’installation avec les conditions de lancement de l’installation, utilisez un type d’action personnalisé 19 dans la table InstallExecuteSequence et basez l’action personnalisée sur la propriété Privileged. N’utilisez pas d’action dans la table LaunchCondition avec une condition basée sur la propriété AdminUser ou Privileged.
  • Pour lire ou modifier la configuration système, utilisez une action personnalisée d’exécution différée dans la table InstallExecuteSequence. N’utilisez pas d’actions personnalisées d’exécution immédiate dans la table InstallUISequence pour modifier la configuration système.
  • Pour modifier des parties du système qui ne sont pas spécifiques à l’utilisateur, utilisez une action personnalisée différée dans la table InstallExecuteSequence. Vous devez inclure le bit msidbCustomActionTypeNoImpersonate dans le type d’action personnalisée.
  • Omettez Bit 3 dans la valeur de la propriété Word Count Summary pour indiquer que le package peut nécessiter des privilèges élevés. N’incluez pas ce bit, sauf si des privilèges élevés ne sont pas requis pour installer ce package.
  • Incluez un manifeste avec le niveau d’exécution demandé de l’application.
  • Incluez un certificat dans la table MsiPatchCertificate du package d’origine et signez tous les correctifs avec le même certificat.
  • Si des privilèges élevés sont requis pour installer un package Windows Installer, l’auteur du package doit inclure l’attribut ElevationShield pour le contrôle PushButton utilisé pour démarrer l’installation. Cela avertit l’utilisateur que le fait de cliquer sur le bouton affiche la boîte de dialogue UAC demandant l’autorisation administrateur pour poursuivre l’installation.
  • Définissez la propriété MSIDEPLOYMENTCOMPLIANT sur 1 pour indiquer à Windows Installer que le package a été créé et testé pour se conformer à l’UAC dans Windows Vista. Si cette propriété n’est pas définie, le programme d’installation détermine si le package est conforme à l’UAC.

En dehors de la stratégie de groupe, la vérification suivante peut être utilisée sur Windows XP pour évaluer la conformité au contrôle de compte d’utilisateur.

Pour vérifier la conformité à l’UAC en dehors de la stratégie de groupe

  1. Ouvrez une session sur l’ordinateur en tant qu’administrateur.

  2. Publiez le package pour une installation par ordinateur :

    msiexec /jmpackage.msi

  3. Fermez la session sur l’ordinateur.

  4. Ouvrez une session sur l’ordinateur en tant qu’utilisateur standard.

  5. Essayez d’installer le package publié :

    msiexec /ipackage.msi

  6. Dans la plupart des cas, si l’installation réussit, le package est conforme à l’UAC.

  7. Définissez la propriété MSIDEPLOYMENTCOMPLIANT dans le package sur 1.

  8. Vérifiez si l’installation du package est correcte en utilisant Windows Vista.