Как запустить процесс в качестве текущего пользователя с правами администратора - PullRequest
2 голосов
/ 15 октября 2010

Когда программа установки (созданная как Inno Setup) запускает процесс, процесс всегда запускается с правами администратора. -потому что программа установки была запущена от имени администратора.

Я хочу запустить дочерний процесс как привилегию текущего пользователя.
Есть хороший способ?

Ответы [ 2 ]

13 голосов
/ 15 октября 2010

Этот вопрос задается каждые 3 или 4 месяца внутри MSFT.

Ответ, который задают сотрудники службы безопасности: «Вы не можете.Когда создается токен с повышенными правами, в токен вносятся изменения, которые нельзя отменить.

Лучше всего, чтобы у вас было приложение запуска, которое запускает вашу программу установки с повышенными правами, а затем, когда программа установки с повышенными правамизавершается, поворачивается и запускает ваш дочерний процесс.

0 голосов
/ 15 октября 2010

Несмотря на то, что это не считается лучшей практикой (или даже хорошей практикой), можно запустить процесс среднего IL из процесса высокого / admin IL:

См. Этот пост на codeproject

Я могу подтвердить, что этот код работает в Vista 32 и 64-битной версии с включенным UAC и без него.

...