Подтвердить что ты не робот

Возможно ли, чтобы исполняемый файл запрашивал права администратора? (Windows 7)

Я разрабатываю программу диска раздела, и для меня читать \\\\.\\PhysicalDrive0 мне нужны права администратора.

Мне интересно, возможно ли во время выполнения программа получить права администратора? Есть ли какой-либо выигрыш для этого?

Я хочу сделать это, потому что хочу, чтобы программа выполнялась с правами администратора только тогда, когда она читает/записывает диск. По соображениям безопасности я не хочу, чтобы программа выполняла все время с правами администратора, потому что кто-то мог найти ошибку (например, переполнение стека или кучи) в каком-то модуле и выполнить произвольные команды как adm.

4b9b3361

Ответ 1

Вы не можете получить повышенные привилегии после запуска процесса. Ваши варианты:

  • Поместите часть приложения, требующую повышенных привилегий, в отдельный процесс и проявите это с помощью requireAdministrator.
  • Запустите часть приложения, для которой требуются повышенные привилегии как COM-объект вне кода.

Ответ 2

Я никогда не видел пути перехода прав после того, как процесс начал выполняться. Единственный способ, которым я знаю, - это создать процесс как привилегированный.

Я с нетерпением жду других ответов, если есть другой способ.

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

Ответ 4

Project Propeties (Alt + Enter) -> Файл компоновщика -> Файл манифеста   -> Уровень выполнения UAC (в VS2015, в 2010 году он похож) -> requireAdministrator или maximumAvailable

Изменить: Кроме того, если он обновляет программу, просто введите имя вашей программы, начиная с Update, и Windows автоматически распознает ее.