Таблица 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 содержит следующие столбцы.
Column | Тип | Ключ | Допускает значение NULL |
---|---|---|---|
LockObject | Идентификатор | Y | N |
Таблица | Текст | Y | N |
Домен | Форматированные | Y | Y |
User | Форматированные | Y | N |
Разрешение | DoubleInteger | N | Y |
Столбцы
-
LockObject
-
Этот столбец и столбец таблицы вместе указывают файл, каталог или раздел реестра, который требуется защитить. Столбец LockObject — это внешний ключ, указывающий на первичный ключ таблицы, указанной столбцом таблицы.
-
Стол
-
Этот столбец и столбец LockObject указывают файл, каталог или раздел реестра, который требуется защитить. В столбце таблицы введите файл, реестр или CreateFolder, чтобы указать lockObject, указанный в таблице файлов, таблице реестра или таблице CreateFolder.
-
Предметная область
-
Столбец, определяющий домен пользователя, для которого необходимо задать разрешения. Это имя автономного компьютера или доменного имени. Тип данных столбца форматирован, и можно использовать строку [%USERDOMAIN] в этом поле, чтобы получить значение переменной среды USERDOMAIN для текущего домена. Для получения любого другого домена требуется использовать настраиваемые действия. Дополнительные сведения см. в таблице настраиваемых действий.
-
Пользователь
-
Столбец, определяющий локализованное имя пользователя, для которого необходимо задать разрешения. Это имя должно находиться на компьютере или домене. Установка завершается ошибкой, если компьютер или контроллер домена не распознает комбинацию домена и пользователя или не может быть извлечен идентификатор безопасности пользователя. Для одного LockObject можно указать несколько пользователей.
Общие имена пользователей "Все" и "Администраторы" могут вводиться на английском языке и сопоставляются с известными идентификаторами SID. LocalSystem предоставляет полный контроль во всех дескрипторах безопасности, созданных с помощью таблицы LockPermissions. Для получения текущего пользователя можно использовать свойство ComputerName, свойство LogonUser или ИМЯ ПОЛЬЗОВАТЕЛЯ в этом поле. Для ввода локализованного имени любого другого пользователя или группы требуется пользовательское действие.
Для указания списков управления доступом для нескольких пользователей можно использовать несколько записей с одинаковыми записями LockObject и таблицами (но различными записями пользователей).
-
Разрешение
-
Столбец, определяющий целочисленное описание системных привилегий. Ниже приведены наиболее часто используемые значения (полный список существует в Winnt.h).
Право Description 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) или пользователем, выполняя установку.
Проверка