LockPermissions-Tabelle
Die LockPermissions-Tabelle wird verwendet, um einzelne Teile einer Anwendung in einer gesperrten Umgebung zu sichern. Sie kann mit der Installation von Dateien, Registrierungsschlüsseln und erstellten Ordnern verwendet werden.
Ein Paket, das für die Installation unter Windows Server 2008 R2 oder Windows 7 vorgesehen ist, sollte die MsiLockPermissionsEx-Tabelle anstelle der LockPermissions-Tabelle verwenden. Windows Installer-Versionen 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 mit der MsiLockPermissionsEx-Tabelle und der LockPermissions-Tabelle fehl und gibt die Windows Installer-Fehlermeldung 1941 zurück.
Die LockPermissions-Tabelle enthält die folgenden Spalten.
Spalte | Type | Schlüssel | NULL zulassen |
---|---|---|---|
LockObject | Identifier | Y | N |
Tabelle | Text | Y | N |
Domäne | Formatiert | Y | Y |
Benutzer | Formatiert | Y | N |
Berechtigung | DoubleInteger | N | J |
Spalten
-
LockObject
-
Diese Spalte und die Spalte „Table“ geben zusammen den zu sichernden Datei-, Verzeichnis- oder Registrierungsschlüssel an. Die Spalte „LockObject” ist ein Fremdschlüssel, der auf den Primärschlüssel der in der Spalte „Tabelle” angegebenen Tabelle verweist.
-
Tabelle
-
Diese Spalte und die Spalte „LockObject“ geben den zu sichernden Datei-, Verzeichnis- oder Registrierungsschlüssel an. Geben Sie in der Spalte „Table“ den Wert „File“, „Registry“ oder „CreateFolder“ ein, um ein in der Tabelle File Table, Registry Table oder CreateFolder Table aufgeführtes LockObject-Element anzugeben.
-
Domäne
-
Die Spalte, die die Domäne des Benutzers angibt, für die Berechtigungen festgelegt werden sollen. Dies ist der Name eines eigenständigen Computers oder ein Domänenname. Der Spaltendatentyp ist Formatiert, und Sie können die Zeichenfolge [%USERDOMAIN] in diesem Feld verwenden, um den Wert der USERDOMAIN-Umgebungsvariable für die aktuelle Domäne abzurufen. Um eine andere Domäne abzurufen, müssen Sie benutzerdefinierte Aktionen verwenden. Weitere Informationen finden Sie in der Tabelle der benutzerdefinierten Aktionen.
-
Benutzer
-
Die Spalte, die den lokalisierten Namen des Benutzers angibt, 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 Domänen- und Benutzerkombination nicht erkennt oder die Sicherheits-ID (SID) des Benutzers nicht abgerufen werden kann. Für ein einzelnes LockObject-Element können mehrere Benutzer angegeben werden.
Die allgemeinen Benutzernamen „Jeder“ und „Administratoren“ können in englischer Sprache eingegeben werden und werden bekannten SIDs zugeordnet. „LocalSystem“ erhält die vollständige Kontrolle in allen Sicherheitsdeskriptoren, 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 Table-Einträgen (aber unterschiedlichen User-Einträgen) verwenden, um Zugriffssteuerungslisten für mehrere Benutzer festzulegen.
-
Permission
-
Die Spalte, die die Ganzzahlbeschreibung der Systemberechtigungen identifiziert. Im Folgenden finden Sie die am häufigsten verwendeten Werte (eine vollständige Liste finden Sie in „Winnt.h“).
Berechtigung Beschreibung GENERIC_ALL
0X10000000
268435456Lese-, Schreib- und Ausführungszugriff GENERIC_EXECUTE
0X20000000
536870912Ausführungszugriff GENERIC_WRITE
0X40000000
1073741824Schreibzugriff Sie können in der Spalte „Berechtigung” nicht GENERIC_READ angeben. Ein entsprechender Versuch schlägt fehl. Stattdessen müssen Sie einen Wert wie KEY_READ oder FILE_GENERIC_READ angeben.
Die Eingabe von NULL-Werten in dieser Spalte ist für die zukünftige Verwendung reserviert.
Hinweise
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 nur in der LockPermissions-Tabelle für Benutzer festgelegt werden, die bereits auf dem Computer oder in der Domäne vorhanden sind. Ein 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, das in der LockPermissions-Tabelle aufgeführt ist, erhält einen expliziten Sicherheitsdeskriptor, unabhängig davon, ob er ein vorhandenes Objekt ersetzt oder nicht. 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 der Ersatz die Sicherheitseinstellungen des Objekts ab, das ersetzt wird.
Wenn ein Objekt nicht in der LockPermissions-Tabelle aufgeführt ist und kein vorhandenes Objekt ersetzt, empfängt 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 wird, basiert der Zugriff auf das neue Objekt auf den Attributen des übergeordneten Objekts oder Containerobjekts.
Windows Installer legt die UserSID-Eigenschaft auf die Sicherheits-ID (SID) oder den Benutzer fest, der die Installation ausführt.
Überprüfen