Table LockPermissions

La table LockPermissions est utilisée pour sécuriser des parties individuelles d’une application dans un environnement verrouillé. Elle peut être utilisée avec l’installation de fichiers, de clés de registres et de dossiers créés.

Un package destiné à être installé dans Windows Server 2008 R2 ou Windows 7 doit utiliser la table MsiLockPermissionsEx plutôt que la table LockPermissions. Les versions de Windows Installer antérieures à Windows Installer 5.0 ignorent la table MsiLockPermissionsEx. Windows Installer 5.0 peut installer un package qui contient la table LockPermissions. À compter de Windows Installer 5.0, l’installation d’un package qui contient à la fois la table MsiLockPermissionsEx et la table LockPermissions échoue et renvoie le message d’erreur Windows Installer 1941.

La table LockPermissions contient les colonnes suivantes.

Colonne Type Clé Nullable
LockObject Identificateur O N
Table de charge de travail Texte O N
Domain Formaté O O
Utilisateur Formaté O N
Autorisation DoubleInteger N O

 

Colonnes

LockObject

Cette colonne et la colonne Table spécifient ensemble le fichier, le répertoire ou la clé de registre à sécuriser. La colonne LockObject est une clé étrangère qui pointe vers la clé primaire de la table spécifiée par la colonne Table.

Table

Cette colonne et la colonne LockObject spécifient le fichier, le répertoire ou la clé de registre à sécuriser. Dans la colonne Table, entrez Fichier, Registre ou CreateFolder pour spécifier un LockObject répertorié dans la table de fichiers, la table du Registre ou la table CreateFolder.

Domaine

Colonne qui identifie le domaine de l’utilisateur pour lequel les autorisations doivent être définies. Il s’agit du nom d’un ordinateur autonome ou d’un nom de domaine. Le type de données de colonne est formaté, et vous pouvez utiliser la chaîne [%USERDOMAIN] dans ce champ pour obtenir la valeur de la variable d’environnement USERDOMAIN pour le domaine actuel. Pour obtenir un autre domaine, vous devez utiliser desactions personnalisées. Pour plus d’informations, consultez la table d’actions personnalisées.

Utilisateur

Colonne qui identifie le nom localisé de l’utilisateur pour lequel les autorisations doivent être définies. Ce nom doit se trouver sur la machine ou le domaine. L’installation échoue si la machine ou le contrôleur de domaine ne reconnaît pas la combinaison domaine-utilisateur ou si l’identificateur de sécurité (SID) de l’utilisateur ne peut pas être récupéré. Plusieurs utilisateurs peuvent être spécifiés pour un seul LockObject.

Les noms d’utilisateur courants « Everyone » et « Administrators » peuvent être entrés en anglais et sont mappés à des SID connus. LocalSystem a un contrôle total dans tous les descripteurs de sécurité créés via la table LockPermissions. Vous pouvez utiliser la propriété ComputerName, la propriété LogonUser ou la propriété USERNAME dans ce champ pour obtenir l’utilisateur actuel. Une action personnalisée est nécessaire pour entrer le nom localisé de tout autre utilisateur ou groupe.

Vous pouvez utiliser plusieurs enregistrements avec des entrées LockObject et Table identiques (mais différentes entrées utilisateur) pour spécifier des listes de contrôle d’accès pour plusieurs utilisateurs.

Autorisation

Colonne qui identifie la description entière des privilèges système. Voici les valeurs les plus couramment utilisées (une liste complète existe dans Winnt.h).

Privilège Description
GENERIC_ALL
0X10000000
268435456
Accès en lecture, écriture et exécution
GENERIC_EXECUTE
0X20000000
536870912
Exécuter l'accès
GENERIC_WRITE
0X40000000
1073741824
Accès en écriture

 

Vous ne pouvez pas spécifier GENERIC_READ dans la colonne Autorisation. Toute tentative de ce type échoue. Au lieu de cela, vous devez spécifier une valeur telle que KEY_READ ou FILE_GENERIC_READ.

Une valeur nulle entrée dans cette colonne est réservée à une utilisation ultérieure.

Notes

Les actions InstallFiles, WriteRegistryValues et CreateFolders dans les tables de séquence traitent les informations de cette table. Pour plus d’informations sur l’utilisation des tables de séquence, consultez Utilisation d’une table de séquences.

L’autorisation peut uniquement être définie dans la table LockPermissions pour les utilisateurs qui existent déjà sur l’ordinateur ou le domaine. Une tentative de définition des autorisations pour un utilisateur inconnu entraîne l’échec de l’installation, même si ce compte utilisateur est créé pendant l’installation par une action personnalisée différée.

Il est recommandé d’inclure le groupe local de l’administrateur système dans toutes les listes de contrôle d’accès (ACL). Cela garantit que l’administrateur système peut accéder aux objets et les gérer.

Chaque fichier, clé de Registre ou répertoire figurant dans la table LockPermissions reçoit un descripteur de sécurité explicite, qu’il remplace ou non un objet existant. Windows Installer tente de préserver la sécurité sur les objets qui existent déjà dans le système. Si un objet n’est pas répertorié dans la table LockPermissions et remplace un objet existant, il obtient les paramètres de sécurité de l’objet qu’il remplace.

Si un objet n’est pas répertorié dans la table LockPermissions et ne remplace pas un objet existant, il ne reçoit aucun descripteur de sécurité explicite. L’accès au nouvel objet est basé sur les attributs de son objet parent ou conteneur. Si un objet n’est pas répertorié dans la table et remplace un objet sans descripteur de sécurité explicite, son accès sera basé sur les attributs de son objet parent ou conteneur.

Windows Installer définit la propriété UserSID sur l’identificateur de sécurité (SID) ou sur l’utilisateur qui exécute l’installation.

Validation

ICE03
ICE06
ICE46
ICE55