Установка MSI и UAC - PullRequest
       21

Установка MSI и UAC

3 голосов
/ 26 января 2011

У нас есть установка продукта с использованием WiX.Он должен выполняться на серверах и, по своей природе, должен создавать пользователя и назначать этому пользователю определенные права (например, «Выполнить как сервис»). Для этого мы используем наши собственные пользовательские действия, которые определены в библиотеке пользовательских действий на основе C #.

Когда мы запускаем установку пользователем, у которого есть права администратора, но он не является администратором в Windows 2008, система не просит нас подтвердить, что мы хотим, чтобы это приложение выполнялось (диалоговое окно UAC не отображается).В результате все эти действия не выполняются, так как MSI, похоже, запускается без прав администратора.Мы не можем отложить наше действие, потому что некоторые из них должны выполняться во время последовательности пользовательского интерфейса и должны быть помечены как «немедленные».

Как бы мы пометили установщик как тот, которому требуются права администратора?Мы попробовали WiX-атрибут InstallPrivileges = 'elevated', но в документации сказано, что он установлен по умолчанию и не имеет никакого значения.

Спасибо

Ответы [ 2 ]

5 голосов
/ 26 января 2011

Вы не можете пометить MSI напрямую для запроса прав администратора.Однако вы можете попробовать использовать загрузчик EXE, который запрашивает повышение прав через свой манифест: http://msdn.microsoft.com/en-us/library/bb756929.aspx

Лучшим подходом является разделение пользовательских действий вместо одного действия, которое выполняет все:

  • использовать немедленное настраиваемое действие, которое собирает данные из пользовательского интерфейса
  • использовать отложенное без персонификации настраиваемое действие, использующее эти данные

Информация, собранная с помощью настраиваемых действий пользовательского интерфейса, может храниться в установщикесвойства.Эти свойства могут быть переданы через данные действия (свойство CustomActionData) в отложенные действия.

1 голос
/ 27 января 2011

Я использую InstallPrivileges = 'elevated' в моей установке, и он отображает диалоговое окно UAC в Windows 2008. Видите ли вы значок щита на кнопке "Install"?

...