Таблица 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) или пользователя, запустивающего установку.
Проверка
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по