Сделайте UAC дополнительным в Windows Installer на Vista
Я написал файл msi, который предлагает выбор "для каждого пользователя" или "для всех" в фазе пользовательского интерфейса, а теперь обнаруживает, что программа установки не работает в Vista:
- Если я просто повторно использую установщик, который работает для XP, Vista будет запускать приглашение UAC даже для установки "для каждого пользователя", делая эту установку бессмысленной
- Если я выключу UAC в бит 3 PID_WORDCOUNT, Vista больше не будет вызывать UAC, так что даже если у пользователя будет разрешение на установку в реестр машин (скажем), повышение привилегий не произойдет, поэтому установка не выполняется.
Итак: как я могу запретить установщику вызывать UAC, когда он действительно не нужен? В качестве альтернативы, как я могу программным образом запросить UAC, даже если бит 3 установлен?
Ответы
Ответ 1
К сожалению, установщик Windows не предоставляет способ создания единого пакета, который может быть установлен для каждой машины и для каждого пользователя, но запрашивает только UAC для каждого компьютера. Проблема в том, что бит, который может подавлять приглашение UAC, сохраняется в потоке сводной информации и не модифицируется во время выполнения пакета.
Ответ 2
Попробуйте эту ссылку: UAC в заметках MSI: как создавать пакеты, которые работают как для обычного пользователя, так и для машины?
Ответ 3
Я отключил UAC, установив бит 3 PID_WORDCOUNT в моем пакете MSI. Я могу установить его для "ALLUSERS" и "PER-USER", а также писать для HKLM в обоих режимах на машинах VISTA.
Обязательно ли вы получать всплывающее окно UAC для привилегированного пользователя во время установки?