Подтвердить что ты не робот

Сделайте UAC дополнительным в Windows Installer на Vista

Я написал файл msi, который предлагает выбор "для каждого пользователя" или "для всех" в фазе пользовательского интерфейса, а теперь обнаруживает, что программа установки не работает в Vista:

  • Если я просто повторно использую установщик, который работает для XP, Vista будет запускать приглашение UAC даже для установки "для каждого пользователя", делая эту установку бессмысленной
  • Если я выключу UAC в бит 3 PID_WORDCOUNT, Vista больше не будет вызывать UAC, так что даже если у пользователя будет разрешение на установку в реестр машин (скажем), повышение привилегий не произойдет, поэтому установка не выполняется.

Итак: как я могу запретить установщику вызывать UAC, когда он действительно не нужен? В качестве альтернативы, как я могу программным образом запросить UAC, даже если бит 3 установлен?

4b9b3361

Ответ 1

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

Ответ 3

Я отключил UAC, установив бит 3 PID_WORDCOUNT в моем пакете MSI. Я могу установить его для "ALLUSERS" и "PER-USER", а также писать для HKLM в обоих режимах на машинах VISTA. Обязательно ли вы получать всплывающее окно UAC для привилегированного пользователя во время установки?