Таблица LockPermissions

Таблица LockPermissions используется для защиты отдельных частей приложения в заблокированной среде. Его можно использовать с установкой файлов, разделов реестра и созданных папок.

Пакет, предназначенный для установки в Windows Server 2008 R2 или Windows 7, должен использовать таблицу MsiLockPermissionsEx , а не таблицу LockPermissions. Версии установщика Windows, предшествующие установщику Windows 5.0, игнорируют таблицу MsiLockPermissionsEx. Установщик Windows 5.0 может установить пакет, содержащий таблицу LockPermissions. Начиная с установщика Windows 5.0 установка пакета, содержащего таблицу MsiLockPermissionsEx и таблицу LockPermissions, завершается сбоем и возвращает сообщение об ошибке установщика Windows 1941.

Таблица LockPermissions содержит следующие столбцы.

Столбец Type Ключ Допускает значения NULL
LockObject Идентификатор Да N
Таблица Text Да N
Домен Форматированные Да Да
Пользователь Форматированные Да N
Разрешение DoubleInteger N Да

 

Столбцы

LockObject

Вместе этот столбец и столбец Таблица указывают файл, каталог или раздел реестра, которые должны быть защищены. Столбец LockObject — это внешний ключ, указывающий на первичный ключ таблицы, указанной в столбце Таблица.

Таблице

Этот столбец и столбец LockObject указывают файл, каталог или раздел реестра, который требуется защитить. В столбце Таблица введите Файл, Реестр или CreateFolder, чтобы указать LockObject, указанный в таблице файлов, таблице реестра или таблице CreateFolder.

Домена

Столбец, определяющий домен пользователя, для которого необходимо задать разрешения. Это имя автономного компьютера или доменное имя. Тип данных столбца — Formatted, и вы можете использовать строку [%USERDOMAIN] в этом поле, чтобы получить значение переменной среды USERDOMAIN для текущего домена. Чтобы получить любой другой домен, необходимо использовать пользовательские действия. Дополнительные сведения см. в разделе Таблица настраиваемых действий.

Пользователя

Столбец, определяющий локализованное имя пользователя, для которого необходимо задать разрешения. Это имя должно находиться на компьютере или в домене. Установка завершается ошибкой, если компьютер или контроллер домена не распознает сочетание домена и пользователя или если идентификатор безопасности пользователя (SID) не может быть получен. Для одного объекта LockObject можно указать нескольких пользователей.

Общие имена пользователей "Все" и "Администраторы" можно вводить на английском языке и сопоставлять с известными идентификаторами БЕЗОПАСНОСТИ. LocalSystem получает полный контроль во всех дескрипторах безопасности, созданных с помощью таблицы LockPermissions. Вы можете использовать свойства ComputerName, LogonUser Property или USERNAME Property в этом поле, чтобы получить текущего пользователя. Для ввода локализованного имени любого другого пользователя или группы требуется пользовательское действие.

Для указания списков управления доступом для нескольких пользователей можно использовать несколько записей с одинаковыми записями LockObject и Table (но разными записями пользователей).

Разрешение

Столбец, определяющий целочисленное описание системных привилегий. Ниже приведены наиболее часто используемые значения (полный список существует в Winnt.h).

Privilege Описание
GENERIC_ALL
0X10000000
268435456
Доступ на чтение, запись и выполнение
GENERIC_EXECUTE
0X20000000
536 870 912
Выполнение доступа
GENERIC_WRITE
0X40000000
1073741824
Доступ для записи.

 

Нельзя указать GENERIC_READ в столбце Разрешение. Попытка сделать это завершится ошибкой. Вместо этого необходимо указать значение, например KEY_READ или FILE_GENERIC_READ.

Значение NULL, введенное в этом столбце, зарезервировано для использования в будущем.

Комментарии

Действия InstallFiles, WriteRegistryValues и CreateFolders в таблицах последовательностей обрабатывают сведения в этой таблице. Сведения об использовании таблиц последовательностей см. в разделе Использование таблицы последовательностей.

Разрешение можно задать только в таблице LockPermissions для пользователей, которые уже существуют на компьютере или в домене. Попытка задать разрешения для неизвестного пользователя приводит к сбою установки, даже если эта учетная запись пользователя создается во время установки с помощью отложенного настраиваемого действия.

Рекомендуется включить локальную группу системного администратора во все списки управления доступом (ACL). Это гарантирует, что системный администратор сможет получать доступ к объектам и обслуживать их.

Каждый файл, раздел реестра или каталог, перечисленные в таблице LockPermissions, получает явный дескриптор безопасности независимо от того, заменяет ли он существующий объект или нет. Установщик Windows пытается сохранить безопасность объектов, которые уже существуют в системе. Если объект не указан в таблице LockPermissions и заменяет существующий объект, замена получает параметры безопасности заменяемого объекта.

Если объект не указан в таблице LockPermissions и не заменяет существующий объект, он не получает явный дескриптор безопасности. Доступ к новому объекту основан на атрибутах его родительского объекта или объекта контейнера. Если объект не указан в таблице и заменяет объект без явного дескриптора безопасности, доступ к новому объекту основан на атрибутах его родительского объекта или объекта контейнера.

Установщик Windows задает для свойства UserSID идентификатор безопасности (SID) или пользователя, запустивающего установку.

Проверка

ICE03
ICE06
ICE46
ICE55