Partilhar via


Tabela LockPermissions

A tabela LockPermissions é usada para proteger partes individuais de um aplicativo em um ambiente bloqueado. Ele pode ser usado com a instalação de arquivos, chaves de registro e pastas criadas.

Um pacote destinado à instalação no Windows Server 2008 R2 ou Windows 7 deve usar o MsiLockPermissionsEx Table em vez da tabela LockPermissions. As versões do Windows Installer anteriores ao Windows Installer 5.0 ignoram a tabela MsiLockPermissionsEx. O Windows Installer 5.0 pode instalar um pacote que contém a tabela LockPermissions. A partir do Windows Installer 5.0, a instalação de um pacote que contém a tabela MsiLockPermissionsEx e a tabela LockPermissions falha e retorna a mensagem de erro 1941 do Windows Installer.

A tabela LockPermissions tem as seguintes colunas.

Coluna Tipo Chave Nulo
LockObject Identificador Y N
Tabela de texto Y N
Domínio Formatado Y Y
Utilizador Formatado Y N
Permissão DoubleInteger N Y

 

Colunas

LockObject

Esta coluna e a coluna Tabela juntas especificam o arquivo, diretório ou chave do Registro que deve ser protegido. A coluna LockObject é uma chave estrangeira que aponta para a chave primária da tabela especificada pela coluna Tabela.

Tabela

Esta coluna e a coluna LockObject especificam o arquivo, diretório ou chave do Registro que deve ser protegido. Na coluna Tabela, digite Arquivo, Registro ou CreateFolder para especificar um LockObject listado no Tabela de Arquivos, Tabela do Registroou Tabela CreateFolder.

Domínio

A coluna que identifica o domínio do usuário para o qual as permissões devem ser definidas. Este é o nome de uma máquina independente ou um nome de domínio. O tipo de dados da coluna é Formatado, e você pode usar a cadeia de caracteres [%USERDOMAIN] neste campo para obter o valor da variável de ambiente USERDOMAIN para o domínio atual. Para obter qualquer outro domínio é necessário usar Ações personalizadas. Para obter mais informações, consulte a Tabela de ações personalizadas.

Utilizador

A coluna que identifica o nome localizado do usuário para o qual as permissões devem ser definidas. Esse nome deve estar localizado na máquina ou no domínio. A instalação falhará se a máquina ou o controlador de domínio não reconhecer a combinação de domínio e usuário ou se o identificador de segurança (SID) do usuário não puder ser recuperado. Vários usuários podem ser especificados para um único LockObject.

Os nomes de usuário comuns "Todos" e "Administradores" podem ser inseridos em inglês e são mapeados para SIDs bem conhecidos. LocalSystem recebe controle total em todos os descritores de segurança criados através da tabela LockPermissions. Você pode usar o ComputerName Property, LogonUser Property ou de propriedade USERNAME neste campo para obter o usuário atual. Uma ação personalizada é necessária para inserir o nome localizado de qualquer outro usuário ou grupo.

Você pode usar vários registros com entradas idênticas de LockObject e Table (mas entradas de usuário diferentes) para especificar listas de controle de acesso para vários usuários.

Permissão

A coluna que identifica a descrição inteira dos privilégios do sistema. A seguir estão os valores mais comumente usados (existe uma lista completa em Winnt.h).

Privilégio Descrição
GENERIC_ALL
0X10000000
268435456
Acesso de leitura, gravação e execução
GENERIC_EXECUTE
0X20000000
536870912
Executar acesso
GENERIC_WRITE
0X40000000
1073741824
Acesso de gravação

 

Não é possível especificar GENERIC_READ na coluna Permissão. A tentativa de fazê-lo falhará. Em vez disso, você deve especificar um valor como KEY_READ ou FILE_GENERIC_READ.

Nulo inserido nesta coluna é reservado para uso futuro.

Comentários

O InstallFiles, WriteRegistryValuese CreateFolders ações em tabelas de sequência processar as informações nesta tabela. Para obter informações sobre como usar tabelas de sequência, consulte Usando uma tabela de sequência.

A permissão só pode ser definida na Tabela LockPermissions para usuários que já existem no computador ou domínio. Uma tentativa de definir permissões para um usuário desconhecido faz com que a instalação falhe, mesmo que essa conta de usuário seja criada durante a instalação por uma ação personalizada adiada.

É recomendável que o grupo local do administrador do sistema seja incluído em todas as listas de controle de acesso (ACL). Isso garante que o administrador do sistema possa acessar e manter objetos.

Cada arquivo, chave do Registro ou diretório listado na Tabela LockPermissions recebe um descritor de segurança explícito, substituindo um objeto existente ou não. O Windows Installer tenta preservar a segurança em objetos que já existem no sistema. Se um objeto não estiver listado na tabela LockPermissions e substituir um objeto existente, a substituição obterá as configurações de segurança do objeto que substitui.

Se um objeto não estiver listado na tabela LockPermissions e não substituir um objeto existente, ele não receberá nenhum descritor de segurança explícito. O acesso ao novo objeto é baseado nos atributos de seu objeto pai ou contêiner. Se um objeto não estiver listado na tabela e substituir um objeto sem descritor de segurança explícito, o acesso ao novo objeto será baseado nos atributos de seu objeto pai ou contêiner.

O Windows Installer define a propriedade UserSID para o identificador de segurança (SID) ou o usuário que executa a instalação.

Validação

ICE03
ICE06
ICE46
ICE55