Sécurisation des ressources

La capacité du programme d’installation Windows à définir des autorisations d’accès sur les services, les fichiers, les dossiers créés et les entrées du Registre peut aider à sécuriser les applications d’installation. L’utilisation des tables MsiLockPermissionsEx ou LockPermissions pour sécuriser les ressources est l’une des recommandations pour la création d’installations sécurisées. La table MsiLockPermissionsEx peut permettre à un auteur de packages de sécuriser une ressource sans avoir à écrire une action personnalisée.

À compter des packages développés pour le programme d’installation Windows 5.0, la table MsiLockPermissionsEx doit remplacer l’utilisation de la table LockPermissions . Les fonctionnalités étendues fournies par la table MsiLockPermissionsEx permettent à un package de sécuriser les services, les fichiers, les dossiers et les clés de Registre Windows. Un package ne doit pas contenir à la fois la table MsiLockPermissionsEx et la table LockPermissions.

Le programme d’installation Windows 4.5 et versions antérieures ignore la table MsiLockPermissionsEx. À compter du programme d’installation Windows 5.0, l’installation échoue avec un message d’erreur 1941 si le package contient à la fois une table LockPermissions et une table MsiLockPermissionsEx. Les packages d’installation existants qui contiennent uniquement la table LockPermissions peuvent toujours être installés à l’aide du programme d’installation Windows 5.0.

Le programme d’installation Windows 5.0 traite les informations de la table MsiLockPermissionsEx lorsqu’il exécute les actions standard InstallFiles, InstallServices, WriteRegistryValues et CreateFolders. Un objet sécurisable doit être installé ou réinstallé pour être sécurisé et il n’est pas possible d’ajouter une Liste de contrôle d’accès (ACL) à un objet existant sans réinstaller cet objet.

Pour spécifier le service, le fichier, le répertoire ou la clé de Registre à sécuriser, entrez les informations d’identification dans les champs LockObject et Table de la table MsiLockPermissionsEx. Un objet est identifié par sa clé primaire dans la Table ServiceInstall, Table Fichier, Registre ou CreateFolder.

Pour demander que les autorisations spécifiées s’appliquent à un objet, entrez une chaîne de descripteurs de sécurité valides dans le champ SDDLText de la table MsiLockPermissionsEx à l’aide du langage de définition de descripteur de sécurité (SDDL) valide. La table MsiLockPermissionsEx peut spécifier un descripteur de sécurité qui refuse des autorisations, spécifie l’héritage des autorisations d’une ressource parente ou spécifie les autorisations d’un nouveau compte. Pour obtenir la liste de toutes les autorisations qui peuvent être accordées, refusées ou héritées, consultez Chaînes ACE. Le programme d’installation Windows 5.0 étend l’ensemble d’identificateurs de sécurité (SID) disponibles. Pour obtenir la liste des SID valides, consultez Chaînes SID.

Notes

Si vous souhaitez configurer le descripteur de sécurité d’une ressource parente pour spécifier que ses autorisations sont héritées par les objets enfants, votre programme d’installation doit appliquer des autorisations à la ressource parente avant de créer les objets enfants. Si votre programme d’installation crée les objets enfants avant d’appliquer les autorisations héritées à la ressource parente, les autorisations de la ressource parente ne se propagent pas aux objets enfants.

À compter du programme d’installation Windows 5.0, le type de données FormattedSDDLText étend le type de données Mis en forme. Le programme d’installation Windows vérifie que la chaîne FormattedSDDLText entrée dans la colonne SDDLText de la table MsiLockPermissionsEx est conforme au format de chaîne de descripteur de sécurité.

Programme d’installation Windows 4.5 ou versions antérieures : non prises en charge. La table MsiLockPermissionsEx et le type de données FormattedSDDLText sont disponibles à partir du programme d’installation Windows 5.0.