Возможно ли, чтобы исполняемый файл запросил права администратора? (Windows 7) - PullRequest
11 голосов
/ 18 января 2012

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

Мне интересно, возможно ли во время выполнения программы получить администратораправа?Есть ли для этого win api?

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

Ответы [ 4 ]

13 голосов
/ 18 января 2012

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

  1. Поместите часть приложения, для которой требуются повышенные права, в отдельный процесс и укажите, что с помощью requireAdministrator.
  2. Запустите часть приложения, для которой требуется повышеннаяпривилегии как COM-объект вне процесса.
5 голосов
/ 18 января 2012

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

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

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

2 голосов
/ 18 января 2012

Вам необходимо встроить манифест с флагом requireAdministrator

http://msdn.microsoft.com/en-us/library/bb756929.aspx

1 голос
/ 06 августа 2016

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...