Как запустить программу как обычный пользователь из установщика с повышенными правами UAC - PullRequest
7 голосов
/ 10 марта 2010

Я пишу установщик NSIS, и программа установки поднимается «как администратор» по мере необходимости в Windows 7 / Vista. Мне нужно запустить установленную программу в конце установки и не хочу запускать ее с теми же привилегиями, что и у установщика.

Обычные команды NSIS exec запускают дочерний процесс с теми же разрешениями, что и у установщика.

Существует плагин UAC для NSIS, но документация по нему невелика, и кажется, что v. New; Я бы предпочел не использовать этот плагин.

В идеале я ищу небольшой .exe, который я могу включить, чтобы запустить целевую программу без повышения UAC. Это существует?

Любые другие предложения?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 10 марта 2010

У вас есть только два варианта:

  • Снимите и снимите флажок запуска (при работе на NT6 +)
  • Используйте плагин UAC (Это не так уж и ново, но - это боль в использовании, поэтому я бы посоветовал вам просто выбрать первый вариант)

Нет внешней программы, которую вы могли бы использовать, поскольку невозможно вернуться к исходному пользователю из процесса с повышенными правами (вы можете попробовать и подойти довольно близко, но он не получит правильного пользователя в каждом случае) *

0 голосов
/ 12 мая 2010

Я нашел следующее, которое можно обернуть в простую утилиту командной строки:

http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you-part-2-how/

Потребовалось около часа, чтобы этот код работал для моего проекта, и до сих пор он работает без нареканий. ;)

...