Tabelle „LockPermissions“

Die Tabelle „LockPermissions“ wird verwendet, um einzelne Teile einer Anwendung in einer gesperrten Umgebung zu schützen. Dies kann für die Installation von Dateien, Registrierungsschlüsseln und erstellten Ordnern verwendet werden.

Ein Paket für die Installation unter Windows Server 2008 R2 oder Windows 7 sollte anstelle von „LockPermissions“ die Tabelle MsiLockPermissionsEx verwenden. In Versionen vor Windows Installer 5.0 wird die Tabelle „MsiLockPermissionsEx“ ignoriert. Windows Installer 5.0 kann ein Paket installieren, das die Tabelle „LockPermissions“ enthält. Ab Windows Installer 5.0 tritt bei der Installation eines Pakets, das sowohl die Tabelle „MsiLockPermissionsEx“ als auch die Tabelle „LockPermissions“ enthält ein Fehler auf, und die Windows Installer-Fehlermeldung 1941 wird zurückgegeben.

Die Tabelle „LockPermissions“ enthält die folgenden Spalten:

Spalte Typ Schlüssel Nullwerte zulässig
LockObject Identifier J N
Tabelle Text J N
Domain Formatted J J
Benutzer Formatted J N
Berechtigung DoubleInteger N J

 

Spalten

LockObject

Diese Spalte und die Spalte „Table“ geben zusammen die Datei, das Verzeichnis oder den Registrierungsschlüssel für die Sicherung an. Die Spalte „LockObject“ ist ein Fremdschlüssel, der auf den Primärschlüssel der durch die Spalte „Table“ angegebene Tabelle verweist.

Table

Diese Spalte und die Spalte „LockObject“ geben zusammen die Datei, das Verzeichnis oder den Registrierungsschlüssel für die Sicherung an. Geben Sie in der Spalte „Table“ eine der Zeichenfolgen „File“, „Registry“ oder „CreateFolder“ ein, um ein „LockObject“ anzugeben, das in der Tabelle File, der Tabelle Registry bis der Tabelle CreateFolder aufgeführt ist.

Domain

Diese Spalte gibt die Domäne des Benutzers bzw. der Benutzerin an, für den oder die Berechtigungen festgelegt werden sollen. Dies ist der Name eines eigenständigen Computers oder ein Domänennamen. Der Spaltendatentyp ist Formatiert, und Sie können die Zeichenfolge „[%USERDOMAIN]“ in diesem Feld verwenden, um den Wert der Umgebungsvariablen „USERDOMAIN“ für die aktuelle Domäne abzurufen. Um eine andere Domäne abzurufen, ist die Verwendung von benutzerdefinierten Aktionen erforderlich. Weitere Informationen finden Sie in der Tabelle für benutzerdefinierte Aktionen.

User

Diese Spalte gibt den lokalisierten Namen des Benutzers bzw. der Benutzerin an, für den oder die Berechtigungen festgelegt werden sollen. Dieser Name muss sich auf dem Computer oder in der Domäne befinden. Bei der Installation tritt ein Fehler auf, wenn der Computer oder Domänencontroller die Kombination aus Domäne und Benutzer*in nicht erkennt oder wenn die Sicherheits-ID (SID) des Benutzers bzw. der Benutzerin nicht abgerufen werden kann. Es können mehrere Benutzer*innen für ein einzelnes LockObject angegeben werden.

Die allgemeinen Benutzernamen „Everyone“ und „Administrators“ können in englischer Sprache eingegeben werden und sind bekannten SIDs zugeordnet. LocalSystem erhält die vollständige Kontrolle über alle Sicherheitsbeschreibungen, die über die Tabelle „LockPermissions“ erstellt werden. Sie können in diesem Feld die Eigenschaften ComputerName, LogonUser oder USERNAME verwenden, um den aktuellen Benutzer bzw. die aktuelle Benutzerin abzurufen. Für die Eingabe des lokalisierten Namens anderer Benutzer*innen oder Gruppen ist eine benutzerdefinierte Aktion erforderlich.

Sie können mehrere Datensätze mit identischen LockObject- und Table-Einträgen (aber unterschiedlichen User-Einträgen) verwenden, um Zugriffssteuerungslisten für mehrere Benutzer*innen anzugeben.

Permission

Diese Spalte identifiziert die Integerbeschreibung der Systemberechtigungen. Im Folgenden finden Sie die am häufigsten verwendeten Werte. (Eine vollständige Liste ist in „Winnt.h“ enthalten.)

Berechtigung BESCHREIBUNG
GENERIC_ALL
0x10000000
268435456
Lese-, Schreib- und Ausführungszugriff
GENERIC_EXECUTE
0x20000000
536870912
Ausführungszugriff
GENERIC_WRITE
0x40000000
1073741824
Schreibzugriff

 

Sie können GENERIC_READ nicht in der Spalte „Permission“ angeben. Bei diesem Versuch tritt ein Fehler auf. Stattdessen müssen Sie einen Wert wie KEY_READ oder FILE_GENERIC_READ angeben.

Der in dieser Spalte eingegebene Wert NULL ist für die zukünftige Verwendung reserviert.

Bemerkungen

Die Aktionen InstallFiles, WriteRegistryValues und CreateFolders in Sequenztabellen verarbeiten die Informationen in dieser Tabelle. Informationen zur Verwendung von Sequenztabellen finden Sie unter Verwenden einer Sequenztabelle.

Die Berechtigung kann in der Tabelle „LockPermissions“ nur für Benutzer*innen festgelegt werden, die bereits auf dem Computer oder in der Domäne vorhanden sind. Ein Versuch, Berechtigungen für unbekannte Benutzer*innen festzulegen, führt dazu, dass bei der Installation ein Fehler auftritt, auch wenn dieses Benutzerkonto während der Installation durch eine verzögerte benutzerdefinierte Aktion erstellt wird.

Es wird empfohlen, die lokale Gruppe der Systemadministrator*innen in alle Zugriffssteuerungslisten (Access Control Lists, ACL) aufzunehmen. Dadurch wird sichergestellt, dass Systemadministrator*innen auf Objekte zugreifen und diese verwalten können.

Jede Datei, jeder Registrierungsschlüssel und jedes Verzeichnis, das in der Tabelle „LockPermissions“ aufgeführt ist, erhält eine explizite Sicherheitsbeschreibung, unabhängig davon, ob ein vorhandenes Objekt ersetzt wird oder nicht. Der Windows Installer versucht die Sicherheit für Objekte beizubehalten, die bereits auf dem System vorhanden sind. Wenn ein Objekt nicht in der Tabelle „LockPermissions“ aufgeführt ist und ein vorhandenes Objekt ersetzt, erhält das ersetzende Objekt die Sicherheitseinstellungen des ersetzten Objekts.

Wenn ein Objekt nicht in der Tabelle „LockPermissions“ aufgeführt ist und kein vorhandenes Objekt ersetzt, erhält es keine explizite Sicherheitsbeschreibung. Der Zugriff auf das neue Objekt basiert auf den Attributen des übergeordneten oder Containerobjekts. Wenn ein Objekt nicht in der Tabelle aufgeführt ist und ein Objekt ohne explizite Sicherheitsbeschreibung ersetzt, basiert der Zugriff auf das neue Objekt auf den Attributen des übergeordneten Objekts bzw. des Containerobjekts.

Der Windows Installer legt die UserSID-Eigenschaft auf die Sicherheits-ID (SID) oder den/die Benutzer*in fest, der bzw. die die Installation ausführt.

Validierung

ICE03
ICE06
ICE46
ICE55