MSI для пользователя по умолчанию не повышен - как показать запрос на повышение прав для записи в папку? - PullRequest
3 голосов
/ 14 февраля 2012

У меня есть MSI, созданный через WiX, он для каждого пользователя и не отображает приглашение UAC, если у пользователя есть права на папку назначения. Однако, если папка назначения находится в Program Files, она выдает ошибку «Недостаточные привилегии».

Как отобразить приглашение UAC в случае, если папка назначения недоступна для записи?

Ответы [ 2 ]

4 голосов
/ 14 февраля 2012

Это не совсем так.Установки для каждого пользователя никогда не должны требовать повышения прав и никогда не должны записывать в программные файлы, так как это зависит от местоположения компьютера.Вместо этого он должен установить в% LocalAppData% \ Programs \ Company \ Product.

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

Создание отдельного пакета для контекста установки для пользователя или компьютера в Windows 7

0 голосов
/ 20 ноября 2016

Я знаю, что это старая ветка, но я хочу сообщить другим, кто с ней сталкивается, что это действительно возможно.

Как уже упоминалось в предыдущем ответе, обычные установки для пользователя не должны требовать администратораправ.Однако я натолкнулся на вполне допустимую ситуацию, когда мне нужно было выполнить пользовательское действие, требующее прав администратора.Требование, чтобы мои пользователи запускали MSI с msiexec из командной строки с повышенными привилегиями, не казалось приемлемым решением.

Не похоже, что это должно быть так сложно, но, к счастью, я наткнулся на ответ в этом посте : Атрибут Package / @ InstallScope не поддерживает пользователя, повышенныйпакеты!Так что просто опустите его в определении пакета:

<!-- NOTE: If you need to create a per-user installation (meaning it's not -->
<!-- visible in Add/Remove Programs from other logons) that prompts for -->
<!-- elevation, omit both the Package/@InstallPrivileges="elevated" and
<!-- Package/@InstallScope="perUser". -->
<Package InstallerVersion="200" Compressed="yes" />

Не забудьте также оставить ALLUSERS неопределенным.Я описал это далее в своем блоге:

Как повысить индивидуальный установщик с помощью WiX

...