Сделать UAC необязательным в установщике Windows на Vista - PullRequest
16 голосов
/ 31 октября 2008

Я написал MSI-файл, который предлагает выбор «для каждого пользователя» или «для всех» установки на этапе пользовательского интерфейса, и теперь обнаружил, что установщик не работает в Vista:

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

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

Ответы [ 3 ]

6 голосов
/ 22 ноября 2008

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

1 голос
/ 19 августа 2009

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

...