NSIS: получить текущего пользователя перед администратором RequestExecutionLevel - PullRequest
0 голосов
/ 05 апреля 2019

Мой установщик запускается для всех пользователей и сохраняет информацию о пользователе в папке AppData.

Проблема заключается в том, что после завершения установки исполняемый файл запускается с помощью Exec и запускается от имени пользователя-администратора, поэтому все данные сеанса хранятся в AppData администратора. Я хочу запустить установку от имени администратора, но последний шаг от имени текущего пользователя.

RequestExecutionLevel admin

Могу ли я запустить свое приложение как текущий пользователь? Могу ли я сохранить текущего пользователя, прежде чем запрашивать права администратора?

1 Ответ

0 голосов
/ 05 апреля 2019

В рекомендациях Microsoft сказано:

Требования к сертификации для приложений Windows для настольных ПК

  • Приложения должны быть установлены на правильныепапки по умолчанию
    • 10.6 Ваше приложение должно записывать пользовательские данные при первом запуске, а не во время установки в установках для каждого компьютера.Когда приложение установлено, нет правильного местоположения пользователя для хранения данных.

Если у вас есть какие-то пользовательские данные / шаблон по умолчанию, вы должны установитьчто в %ProgramFiles% или %ProgramData% и ваше приложение должно скопировать эти данные в %AppData% при первом запуске приложения пользователем.

ShellExecAsUser и StdUtils Плагины могут использоваться для выполнения вашего приложения в качестве «реального» пользователя на конечной странице.

Подключаемый модуль UAC позволяет получить доступ к «реальным» пользователям %AppData% и реестр, но я не рекомендую такой подход, потому что плагин сложен в использовании и действительно способствует некорректному поведению.Вы, скорее всего, получите шаблон установки, который работает только для первоначального пользователя, а не для других пользователей на том же компьютере.

...