Vista / 7 UAC: как снизить привилегии процесса - PullRequest
2 голосов
/ 30 марта 2010

Возможно ли, чтобы процесс понизил себя от повышенного разрешения UAC до стандартного пользователя? Если нет, может ли пользователь с повышенными правами запустить свою копию со стандартным токеном пользователя и затем убить себя? Любые примеры кода (предпочтительно C #)?

подробности:

Проблема: - пользователь устанавливает мой продукт (написано на C #) - установщик повышает разрешение UAC для администратора - в конце установщик запускает мой exe - exe наследует повышенные права от администратора - exe монтирует сетевые диски, которые становятся невидимыми в Windows Explorer (который работает с обычными разрешениями)

Варианты, которые я рассмотрел: 1) разбить установщик на внешний и внутренний exe-файлы, работающие с повышенными правами. Установка состоит из 1000+ строк кода NSIS, и я ничего не знаю о NSIS 2) монтаж дисков с меньшими разрешениями. Если я это сделаю, Win Explorer может видеть диски, но мой exe не может 3) установка для параметра реестра EnableLinkedConnection значения 1. Это запрещено, поскольку при установке требуется перезагрузка компьютера.

Пожалуйста, помогите!

Сергей

Ответы [ 3 ]

3 голосов
/ 30 марта 2010

В одну сторону: http://www.codeproject.com/KB/vista-security/VistaElevator.aspx

Другой способ (упоминается в последнем комментарии в предыдущей статье): http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you-part-2-how/

1 голос
/ 10 сентября 2014

Если у вас все в порядке с ответом "взломать", другое сообщение в блоге о NSIS показывает гораздо более простой подход. Просто используя explorer.exe для запуска другого процесса кажется работающим. *

C # будет просто

Process.Start("explorer.exe", YourProgram.ExecutablePath)

Помните, что даже если вы WaitForExit() исследователь, ваша программа, вероятно, еще не завершила!

* Также остерегайтесь одного из комментариев: «К сожалению, команда оболочки Windows ответила, что текущее поведение« Explorer.exe AppName.exe »является ошибкой и может не работать в будущих обновлениях / версиях Windows. Приложения должны не полагайтесь на это. "

1 голос
/ 04 апреля 2010

Невозможно заставить это работать во всех конфигурациях, есть ужасные хаки, такие как Kyle ссылки на, но в конце концов, нет никакого реального способа понизить ваши права. Поскольку вы упоминаете NSIS, так получилось, что у него есть плагин под названием UAC , который исполняет танец внутреннего / внешнего экземпляра, это не красиво, но работает.

...