LockPermissions-Tabelle

Die LockPermissions-Tabelle wird verwendet, um einzelne Teile einer Anwendung in einer gesperrten Umgebung zu schützen. Sie kann mit der Installation von Dateien, Registrierungsschlüsseln und erstellten Ordnern verwendet werden.

Ein Paket, das für die Installation in Windows Server 2008 R2 oder Windows 7 vorgesehen ist, sollte die MsiLockPermissionsEx-Tabelle anstelle der LockPermissions-Tabelle verwenden. Windows Installationsprogrammversionen vor Windows Installer 5.0 ignorieren die MsiLockPermissionsEx-Tabelle. Windows Installer 5.0 kann ein Paket installieren, das die LockPermissions-Tabelle enthält. Ab Windows Installer 5.0 schlägt die Installation eines Pakets fehl, das sowohl die MsiLockPermissionsEx-Tabelle als auch die LockPermissions-Tabelle enthält, und gibt Windows Installer-Fehlermeldung 1941 zurück.

Die LockPermissions-Tabelle enthält die folgenden Spalten.

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

Spalten

LockObject

Diese Spalte und die Tabellenspalte geben zusammen die Zu sichernde Datei, das Verzeichnis oder den Registrierungsschlüssel an. Die LockObject-Spalte ist ein Fremdschlüssel, der auf den Primärschlüssel der tabelle verweist, die von der Spalte Table angegeben wird.

Tabelle

Diese Spalte und die Spalte LockObject geben die Zu sichernde Datei, das Verzeichnis oder den Registrierungsschlüssel an. Geben Sie in der Spalte Tabelle Datei, Registrierung oder CreateFolder ein, um ein LockObject anzugeben, das in der Dateitabelle, der Registrierungstabelleoder der CreateFolder-Tabelleaufgeführt ist.

Domäne

Die Spalte, die die Domäne des Benutzers identifiziert, für den Berechtigungen festgelegt werden sollen. Dies ist der Name eines eigenständigen Computers oder eines Domänennamens. Der Spaltendatentyp ist Formatiert,und Sie können die Zeichenfolge [ %USERDOMAIN ] in diesem Feld verwenden, um den Wert der Umgebungsvariable USERDOMAIN für die aktuelle Domäne abzurufen. Zum Abrufen einer anderen Domäne ist die Verwendung von benutzerdefinierten Aktionenerforderlich. Weitere Informationen finden Sie in der Tabelle für benutzerdefinierte Aktionen.

Benutzer

Die Spalte, die den lokalisierten Namen des Benutzers identifiziert, für den Berechtigungen festgelegt werden sollen. Dieser Name muss sich auf dem Computer oder in der Domäne befinden. Die Installation schlägt fehl, wenn der Computer oder Domänencontroller die Kombination aus Domäne und Benutzer nicht erkennt oder wenn die Sicherheits-ID (SID) des Benutzers nicht abgerufen werden kann. Für ein einzelnes LockObject können mehrere Benutzer angegeben werden.

Die allgemeinen Benutzernamen "Jeder" und "Administratoren" können auf Englisch eingegeben werden und sind bekannten SIDs zugeordnet. LocalSystem erhält vollständige Kontrolle in allen Sicherheitsbeschreibungen, die über die LockPermissions-Tabelle erstellt wurden. Sie können die ComputerName-Eigenschaft, die LogonUser-Eigenschaft oder die USERNAME-Eigenschaft in diesem Feld verwenden, um den aktuellen Benutzer abzurufen. Eine benutzerdefinierte Aktion ist erforderlich, um den lokalisierten Namen eines anderen Benutzers oder einer anderen Gruppe einzugeben.

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

Berechtigung

Die Spalte, die die ganzzahlige Beschreibung der Systemberechtigungen angibt. Im Folgenden werden die am häufigsten verwendeten Werte angegeben (eine vollständige Liste ist in Winnt.h vorhanden).

Berechtigung BESCHREIBUNG
GENERIC _ ALL
0X10000000
268435456
Lese-, Schreib- und Ausführungszugriff
GENERIC _ EXECUTE
0X20000000
536870912
Ausführen des Zugriffs
GENERISCHER _ SCHREIBVORGANG
0X40000000
1073741824
Schreibzugriff

Sie können GENERIC _ READ nicht in der Spalte Permission angeben. Der Versuch, dies zu tun, schlägt fehl. Stattdessen müssen Sie einen Wert wie KEY _ READ oder FILE GENERIC READ _ _ angeben.

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

Bemerkungen

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

Die Berechtigung kann nur in der LockPermissions-Tabelle für Benutzer festgelegt werden, die bereits auf dem Computer oder in der Domäne vorhanden sind. Der Versuch, Berechtigungen für einen unbekannten Benutzer festzulegen, führt dazu, dass die Installation fehlschlägt, auch wenn dieses Benutzerkonto während der Installation durch eine verzögerte benutzerdefinierte Aktion erstellt wird.

Es wird empfohlen, die lokale Gruppe des Systemadministrators in alle Zugriffssteuerungslisten (Access Control Lists, ACL) aufzunehmen. Dadurch wird sichergestellt, dass der Systemadministrator auf Objekte zugreifen und diese verwalten kann.

Jede Datei, jeder Registrierungsschlüssel oder jedes Verzeichnis, die bzw. das in der LockPermissions-Tabelle aufgeführt ist, erhält einen expliziten Sicherheitsdeskriptor, 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 LockPermissions-Tabelle aufgeführt ist und ein vorhandenes Objekt ersetzt, ruft die Ersetzung die Sicherheitseinstellungen des Objekts ab, das er ersetzt.

Wenn ein Objekt nicht in der LockPermissions-Tabelle aufgeführt ist und ein vorhandenes Objekt nicht ersetzt, erhält es keinen expliziten Sicherheitsdeskriptor. Der Zugriff auf das neue Objekt basiert auf den Attributen des übergeordneten Objekts oder Containerobjekts. Wenn ein Objekt nicht in der Tabelle aufgeführt ist und ein Objekt ohne expliziten Sicherheitsdeskriptor ersetzt, basiert der Zugriff auf das neue Objekt auf den Attributen des übergeordneten Objekts oder Containerobjekts.

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

Validierung

ICE03
ICE06
ICE46
ICE55