Tabella LockPermissions

La tabella LockPermissions viene usata per proteggere singole parti di un'applicazione in un ambiente bloccato. Può essere usato con l'installazione di file, chiavi del Registro di sistema e cartelle create.

Un pacchetto destinato all'installazione in Windows Server 2008 R2 o Windows 7 deve usare la tabella MsiLockPermissionsEx anziché la tabella LockPermissions . Le versioni di Windows Installer precedenti a Windows Installer 5.0 ignorano la tabella MsiLockPermissionsEx. Windows Installer 5.0 può installare un pacchetto contenente la tabella LockPermissions. A partire da Windows Installer 5.0, l'installazione di un pacchetto che contiene sia la tabella MsiLockPermissionsEx che la tabella LockPermissions ha esito negativo e restituisce il messaggio di errore di Windows Installer 1941.

La tabella LockPermissions contiene le colonne seguenti.

Colonna Tipo Chiave Nullable
LockObject Identificatore S N
Tabella Text S N
Dominio Formattato S S
Utente Formattato S N
Autorizzazione DoubleInteger N S

 

Colonne

LockObject

Questa colonna e la colonna Table insieme specificano il file, la directory o la chiave del Registro di sistema da proteggere. La colonna LockObject è una chiave esterna che punta alla chiave primaria della tabella specificata dalla colonna Table.

Tavolo

Questa colonna e la colonna LockObject specificano il file, la directory o la chiave del Registro di sistema da proteggere. Nella colonna Tabella immettere File, Registro di sistema o CreateFolder per specificare un oggetto LockObject elencato nella tabella file, nella tabella del Registro di sistema o nella tabella CreateFolder.

Dominio

Colonna che identifica il dominio dell'utente per cui devono essere impostate le autorizzazioni. Si tratta del nome di un computer autonomo o di un nome di dominio. Il tipo di dati della colonna è Formattato e è possibile usare la stringa [%USERDOMAIN] in questo campo per ottenere il valore della variabile di ambiente USERDOMAIN per il dominio corrente. Per ottenere qualsiasi altro dominio è necessario usare Azioni personalizzate. Per altre informazioni, vedere tabella azioni personalizzate.

Utente

Colonna che identifica il nome localizzato dell'utente per cui devono essere impostate le autorizzazioni. Questo nome deve trovarsi nel computer o nel dominio. L'installazione ha esito negativo se il computer o il controller di dominio non riconosce la combinazione di dominio e utente o se non è possibile recuperare l'identificatore di sicurezza dell'utente. È possibile specificare più utenti per un singolo Oggetto LockObject.

I nomi utente comuni "Tutti" e "Administrators" possono essere immessi in inglese e vengono mappati a SID noti. LocalSystem viene fornito controllo completo in tutti i descrittori di sicurezza creati tramite la tabella LockPermissions. È possibile usare la proprietà ComputerName, la proprietà LogonUser o la proprietà USERNAME in questo campo per ottenere l'utente corrente. È necessaria un'azione personalizzata per immettere il nome localizzato di qualsiasi altro utente o gruppo.

È possibile usare più record con voci LockObject e Table identiche (ma voci utente diverse) per specificare elenchi di controllo di accesso per più utenti.

Autorizzazione

Colonna che identifica la descrizione integer dei privilegi di sistema. Di seguito sono riportati i valori usati più comunemente (un elenco completo esiste in Winnt.h).

Privilege Descrizione
GENERIC_ALL
0X10000000
268435456
Lettura, scrittura ed esecuzione dell'accesso
GENERIC_EXECUTE
0X20000000
536870912
Eseguire l'accesso
GENERIC_WRITE
0X40000000
1073741824
Accesso in scrittura

 

Non è possibile specificare GENERIC_READ nella colonna Autorizzazione. Il tentativo di eseguire questa operazione avrà esito negativo. È invece necessario specificare un valore, ad esempio KEY_READ o FILE_GENERIC_READ.

Null immesso in questa colonna è riservato per l'uso futuro.

Commenti

Le azioni InstallFiles, WriteRegistryValues e CreateFolders nelle tabelle di sequenza elaborano le informazioni in questa tabella. Per informazioni sull'uso delle tabelle della sequenza, vedere Uso di una tabella sequenza.

L'autorizzazione può essere impostata solo nella tabella LockPermissions per gli utenti già presenti nel computer o nel dominio. Un tentativo di impostare le autorizzazioni per un utente sconosciuto causa l'esito negativo dell'installazione, anche se l'account utente viene creato durante l'installazione da un'azione personalizzata posticipata.

È consigliabile includere il gruppo locale dell'amministratore di sistema in tutti gli elenchi di controllo di accesso (ACL). Ciò garantisce che l'amministratore di sistema possa accedere e gestire gli oggetti.

Ogni file, chiave del Registro di sistema o directory elencata nella tabella LockPermissions riceve un descrittore di sicurezza esplicito, indipendentemente dal fatto che sostituisca un oggetto esistente o meno. Windows Installer tenta di mantenere la sicurezza sugli oggetti già presenti nel sistema. Se un oggetto non è elencato nella tabella LockPermissions e sostituisce un oggetto esistente, la sostituzione ottiene le impostazioni di sicurezza dell'oggetto che sostituisce.

Se un oggetto non è elencato nella tabella LockPermissions e non sostituisce un oggetto esistente, non riceve alcun descrittore di sicurezza esplicito. L'accesso al nuovo oggetto è basato sugli attributi dell'oggetto padre o contenitore. Se un oggetto non è elencato nella tabella e sostituisce un oggetto senza descrittore di sicurezza esplicito, l'accesso al nuovo oggetto è basato sugli attributi dell'oggetto padre o contenitore.

Windows Installer imposta la proprietà UserSID sull'identificatore di sicurezza (SID) o sull'utente che esegue l'installazione.

Convalida

ICE03
ICE06
ICE46
ICE55