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.

Column Type Chiave Nullable
LockObject Identifier Y N
Tabella Text Y N
Dominio Formattato S S
User Formattato Y N
Autorizzazione DoubleInteger N Y

 

Colonne

LockObject

Questa colonna e la colonna Table specificano insieme 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 ed è 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 la tabella delle azioni personalizzate.

Utente

Colonna che identifica il nome localizzato dell'utente per cui impostare le autorizzazioni. Questo nome deve trovarsi nel computer o nel dominio. L'installazione non riesce 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 (SID) dell'utente. È possibile specificare più utenti per un singolo LockObject.

I nomi utente comuni "Everyone" e "Administrators" possono essere immessi in inglese e sono mappati a SID noti. LocalSystem ha il controllo completo in tutti i descrittori di sicurezza creati tramite la tabella LockPermissions. È possibile utilizzare 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.

Permesso

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

Privilegio Descrizione
GENERIC_ALL
0X10000000
268435456
Accesso in lettura, scrittura ed esecuzione
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 un uso futuro.

Osservazioni:

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

L'autorizzazione può essere impostata solo nella tabella LockPermissions per gli utenti già esistenti nel computer o nel dominio. Un tentativo di impostare le autorizzazioni per un utente sconosciuto causa l'esito negativo dell'installazione, anche se tale 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). In questo modo l'amministratore di sistema può accedere e gestire gli oggetti.

Ogni file, chiave del Registro di sistema o directory elencato nella tabella LockPermissions riceve un descrittore di sicurezza esplicito, indipendentemente dal fatto che sostituisca o meno un oggetto esistente. Windows Installer tenta di mantenere la sicurezza per gli oggetti già esistenti 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 si basa sugli attributi del relativo 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 si basa sugli attributi del relativo 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