Tabla LockPermissions

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

Un paquete destinado a la instalación en Windows Server 2008 R2 o Windows 7 debe usar la tabla MsiLockPermissionsEx en lugar de la tabla LockPermissions. Windows versiones del instalador anteriores a Windows Installer 5.0 omiten 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 contiene la tabla MsiLockPermissionsEx y la tabla LockPermissions y devuelve Windows mensaje de error del instalador 1941.

La tabla LockPermissions tiene las columnas siguientes.

Columna Tipo Clave Nullable
LockObject Identificador S N
Tabla Texto S N
Domain Formato S S
Usuario Formato S N
Permiso DoubleInteger N S

 

Columnas

LockObject

Esta columna y la columna Tabla especifican juntos el archivo, directorio o clave del Registro que se va a proteger. La columna LockObject es una clave externa que apunta a la clave principal de la tabla especificada por la columna Tabla.

Mesa

Esta columna y la columna LockObject especifican el archivo, directorio o clave del Registro que se va a proteger. En la columna Tabla, escriba Archivo, Registro o CreateFolder para especificar un LockObject que se muestra en la tabla de archivos, la tabla del Registro o la tabla CreateFolder.

Dominio

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 columna tiene formato y 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, se requiere el uso de Acciones personalizadas. Para obtener más información, consulte tabla de acciones personalizadas.

Usuario

Columna que identifica el nombre localizado del usuario para el que se van a establecer los permisos. Este nombre debe estar ubicado en el equipo o dominio. Se produce un error en la instalación 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 único LockObject.

Los nombres de usuario comunes "Todos" y "Administradores" se pueden escribir en inglés y se asignan a SID conocidos. LocalSystem tiene control total en todos los descriptores de seguridad creados a través de la tabla LockPermissions. Puede usar la propiedad ComputerName, la propiedad LogonUser o la propiedad USERNAME en este campo para obtener el usuario actual. Se requiere una acción personalizada para escribir el nombre localizado de cualquier otro usuario o grupo.

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

Permiso

Columna que identifica la descripción entera de los privilegios del sistema. A continuación se proporcionan los valores más usados (existe una lista completa en Winnt.h).

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

 

No se puede especificar GENERIC_READ en la columna Permiso. Si intenta hacerlo, se producirá un error. En su lugar, debe especificar un valor como KEY_READ o FILE_GENERIC_READ.

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

Observaciones

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

El permiso solo se puede establecer en la tabla LockPermissions para los usuarios que ya existen en el equipo o dominio. Un intento de establecer permisos para un usuario desconocido hace que se produzca un error en la instalación, incluso si esa cuenta de usuario se crea durante la instalación mediante 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 y mantener objetos.

Cada archivo, clave del Registro o directorio que aparece en la tabla LockPermissions recibe un descriptor de seguridad explícito, tanto si reemplaza un objeto existente como si no. El instalador de Windows intenta conservar la seguridad de los objetos que ya existen en el sistema. Si un objeto no aparece en la tabla LockPermissions y reemplaza un objeto existente, el reemplazo obtiene la configuración de seguridad del objeto que reemplaza.

Si un objeto no aparece en la tabla LockPermissions y no reemplaza un objeto existente, 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 descriptor de seguridad explícito, el acceso al nuevo objeto se basa en los atributos de su objeto primario o contenedor.

El instalador de Windows 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