LockPermissions (tabla)

La tabla LockPermissions se usa para proteger partes concretas de una aplicación en un entorno bloqueado. Se puede usar para la instalación de archivos, claves del Registro y carpetas creadas.

Un paquete creado para una instalación en Windows Server 2008 R2 o Windows 7 debe usar la tabla MsiLockPermissionsEx en lugar de la tabla LockPermissions. Las versiones de Windows Installer anteriores a la 5.0 ignoran la tabla MsiLockPermissionsEx. Windows Installer 5.0 puede instalar un paquete que contenga la tabla LockPermissions. A partir de Windows Installer 5.0, se produce un error en la instalación de un paquete que contenga las tablas MsiLockPermissionsEx y LockPermissions, y devuelve el mensaje de error 1941 de Windows Installer.

La tabla LockPermissions tiene las siguientes columnas.

Columna Tipo Clave Nullable
LockObject Identificador Y No
Tabla Texto Y No
Domain Formatted Y Y
Usuario Formatted Y No
Permiso DoubleInteger No Y

 

Columnas

LockObject

Esta columna y la columna Table especifican juntas el archivo, el directorio o la clave del Registro que se debe proteger. La columna LockObject es una clave externa que apunta a la clave principal de la tabla especificada en la columna Table.

Table

Esta columna y la columna LockObject especifican el archivo, el directorio o la clave del Registro que se debe proteger. En la columna Table, escriba File, Registry o CreateFolder para especificar un LockObject de las tablas File, Registry o CreateFolder.

Domain

Columna que identifica el dominio del usuario para el que se van a establecer los permisos. Este es el nombre de una máquina independiente o un nombre de dominio. El tipo de datos de la columna es Formatted y se puede usar la cadena [%USERDOMAIN] en este campo para obtener el valor de la variable de entorno USERDOMAIN para el dominio actual. Para obtener cualquier otro dominio, es necesario usar acciones personalizadas. Para obtener más información, consulte CustomAction (tabla).

User

Columna que identifica el nombre localizado del usuario para el que se van a establecer los permisos. Este nombre debe estar en la máquina o el dominio. La instalación da error si la máquina o el controlador de dominio no reconocen la combinación de dominio y usuario, o si no se puede recuperar el identificador de seguridad (SID) del usuario. Se pueden especificar varios usuarios para un mismo LockObject.

Se pueden proporcionar los nombres de usuario comunes "Everyone" y "Administrators" en inglés y se asignan a SID conocidos. A LocalSystem se le da el control total en todos los descriptores de seguridad creados con la tabla LockPermissions. Puede usar las propiedades ComputerName, LogonUser o USERNAME en este campo para obtener el usuario actual. Para escribir el nombre localizado de cualquier otro usuario o grupo es necesaria una acción personalizada.

Puede usar varios registros con entradas de LockObject y Table idénticas (pero diferentes entradas de User) para especificar listas de control de acceso para varios usuarios.

Permission

Columna que identifica la descripción de los privilegios del sistema con un número entero. En la siguiente tabla se proporcionan los valores más usados (hay una lista completa en Winnt.h).

Privilegio Descripción
GENERIC_ALL
0X10000000
268435456
Acceso de lectura, escritura y ejecución
GENERIC_EXECUTE
0X20000000
536870912
Acceso de ejecución
GENERIC_WRITE
0X40000000
1073741824
Acceso de escritura

 

No se puede especificar GENERIC_READ en la columna Permission. Si lo intenta, se producirá un error. Debe especificar un valor como KEY_READ o FILE_GENERIC_READ.

El valor NULL especificado en esta columna está reservado para un uso futuro.

Observaciones

Las acciones InstallFiles, WriteRegistryValues y CreateFolders de las tablas de secuencia procesan la información de esta tabla. Para obtener más información sobre el uso de tablas de secuencia, consulte Uso de una tabla de secuencia.

Permission solo se puede establecer en la tabla LockPermissions para los usuarios que ya existen en el equipo o dominio. Si se intentan establecer permisos para un usuario desconocido, se produce un error en la instalación, incluso si esa cuenta de usuario se crea durante la instalación con una acción personalizada diferida.

Se recomienda incluir el grupo local del administrador del sistema en todas las listas de control de acceso (ACL). Esto garantiza que el administrador del sistema pueda acceder a los objetos y mantenerlos.

Cada archivo, clave del Registro o directorio que aparece en la tabla LockPermissions recibe un descriptor de seguridad explícito, que puede reemplazar o no un objeto que ya existía. Windows Installer intenta mantener la seguridad de los objetos que ya existen en el sistema. Si un objeto no aparece en la tabla LockPermissions y reemplaza un objeto que ya existía, el reemplazo obtiene la configuración de seguridad del objeto que reemplaza.

Si un objeto no aparece en la tabla LockPermissions y no reemplaza otro objeto, no recibe ningún descriptor de seguridad explícito. El acceso al nuevo objeto se basa en los atributos de su objeto primario o contenedor. Si un objeto no aparece en la tabla y reemplaza un objeto sin ningún descriptor de seguridad explícito, el acceso al nuevo objeto se basa en los atributos de su objeto primario o contenedor.

Windows Installer establece la propiedad UserSID en el identificador de seguridad (SID) o en el usuario que ejecuta la instalación.

Validación

ICE03
ICE06
ICE46
ICE55