Поделиться через


Рекомендации по пакетам

Так как управление учетными записями пользователей (UAC) в Windows Vista ограничивает привилегии во время установки, разработчики пакетов установщика Windows не должны предполагать, что их установка всегда имеет доступ ко всем частям системы.

Пакет установщика, который можно успешно развернуть для стандартных пользователей с помощью групповой политики , в большинстве случаев также должен работать с UAC в Windows Vista. Это может произойти, если таблица InstallUISequence содержит действие LaunchConditions или таблица LaunchCondition содержит условие на основе свойства Privilegedition. Поэтому разработчики пакетов установщика Windows должны придерживаться следующих рекомендаций, чтобы обеспечить работу пакета с UAC и Windows Vista.

  • При включении условия контекста установки с действием в таблице InstallUISequence используйте условный оператор на основе свойства Privileged. Не используйте условие на основе свойства AdminUser.
  • При включении контекста установки с условиями запуска установки используйте тип пользовательского действия 19 в таблице InstallExecuteSequence и сделайте пользовательское действие условным для свойства Privileged. Не используйте действие в таблице LaunchCondition с условием на основе свойства AdminUser или привилегированного свойства.
  • Чтобы прочитать или изменить конфигурацию системы, используйте отложенное пользовательское действие выполнения в таблице InstallExecuteSequence. Не используйте пользовательские действия немедленного выполнения в таблице InstallUISequence для изменения конфигурации системы.
  • Чтобы изменить части системы, не относящиеся к пользователю, используйте отложенное пользовательское действие в таблице InstallExecuteSequence. Необходимо включить бит msidbCustomActionTypeNoImpersonate в пользовательский тип действия.
  • Опустите бит 3 из значения свойства сводки подсчета слов , чтобы указать, что пакет может быть необходим для повышения. Не включайте этот бит, если для установки этого пакета не требуются повышенные привилегии.
  • Включите манифест с запрошенным уровнем выполнения приложения.
  • Включите сертификат в таблицу MsiPatchCertificate исходного пакета и подписывает все исправления с одинаковым сертификатом.
  • Если для установки пакета установщика Windows требуются повышенные привилегии, автор пакета должен включать атрибут ElevationShield для элемента управления PushButton, используемого для запуска установки. Это оповещает пользователя о том, что нажатие кнопки отобразит диалоговое окно UAC, запрашивающее авторизацию администратора, чтобы продолжить установку.
  • Задайте для свойства MSIDEPLOYMENTCOMPLIANT значение 1, чтобы указать установщику Windows, что пакет был создан и протестирован для соответствия UAC в Windows Vista. Если это свойство не задано, установщик определяет, соответствует ли пакет UAC.

Вне групповой политики можно использовать следующую проверку соответствия UAC в Windows XP.

Проверка соответствия UAC вне групповой политики

  1. Войдите в систему с учетной записью администратора.

  2. Объявление пакета для установки на компьютер:

    msiexec /jm package.msi

  3. Выйдите из компьютера.

  4. Войдите на компьютер как стандартный пользователь.

  5. Попытайтесь установить объявленный пакет:

    msiexec /i package.msi

  6. В большинстве случаев, если установка выполнена успешно, пакет соответствует UAC.

  7. Задайте для свойства MSIDEPLOYMENTCOMPLIANT в пакете значение 1.

  8. Проверьте правильную установку пакета с помощью Windows Vista.