Запуск установщика в Vista без отключения UAC - PullRequest
3 голосов
/ 28 апреля 2009

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

Ответы [ 5 ]

4 голосов
/ 29 апреля 2009

Лучшие ресурсы, которые я нашел, чтобы разобраться с UAC, - это Блог Роберта Фламингса , у него есть серия из примерно 25 публикаций, в которых объясняется, как Vista, UAC и MSI взаимодействуют.

Vista всегда будет запрашивать, как только доберется до InstallExecuteSequence, если вы выполняете установку для каждой машины (ALLUSERS = 1), однако , если у вас есть установщик, требующий повышения прав снаружи в этой последовательности лучшим решением будет использование загрузочного EXE-файла с манифестом, указывающим, что при запуске EXE требуется повышение прав.

Мы используем коммерческий загрузчик от Indigo Rose (это отдельное приложение, но оно продается только как часть MSI Factory ), но вы можете проявить творческий подход с NSIS , используйте Visual Studio one , а также есть пример в SDK установщика Windows

2 голосов
/ 28 апреля 2009

UAC появляется, потому что вы устанавливаете в папку, к которой у пользователя нет прав, например, Program Files, возможно, попытаетесь установить в каталог с домашнего диска пользователя? Домашним драйвером в Vista является c: \ Users \ Username, там есть каталог для локальных приложений, C: \ Users \ Username \ AppData \ Local \ Apps.

1 голос
/ 03 июня 2009

Вы можете рекламировать установку своим 20 клиентам. Когда они запускают объявленный хук (ярлык меню «Пуск», интерфейс COM, сопоставление файлов и т. Д.), Программа устанавливается с правами администратора.

Вот пример того, как администратор может рекламировать пакет:

msiexec.exe -jm c: \\ mypackage.msi

Статья MSDN: http://msdn.microsoft.com/en-us/library/aa367548(VS.85).aspx

0 голосов
/ 28 апреля 2009

Vista / UAC должна запрашивать подтверждение для продолжения установки, а не блокировать ее полностью. Как называется ваш MSI? Мол, работает ли он волшебно, если вы переименуете его в setup.msi ?

0 голосов
/ 28 апреля 2009

Это должно помочь вам.

РЕДАКТИРОВАТЬ: В ответ на ваш запрос о разъяснениях. Вы можете использовать расписание задач для планирования запуска установки, которая не будет запрашивать, а затем вы можете попросить пользователей / системных администраторов установить этот планировщик из сценария (например, вы можете запланировать его запуск при следующем входе пользователя в систему) .

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

Надеюсь, это проясняет ситуацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...