Как программа запрашивает права администратора? - PullRequest
6 голосов
/ 18 сентября 2008

Я занимаюсь разработкой приложения с использованием vb.net. Для выполнения некоторых задач приложению необходимы права администратора на компьютере. Как запросить привилегии при выполнении программы?

Каков общий метод переключения учетных записей пользователей для выполнения приложения? Другими словами, есть ли способ запустить приложение под произвольной учетной записью пользователя?

Ответы [ 4 ]

4 голосов
/ 14 мая 2009

Вы можете редактировать Настройки UAC (в VB 2008), которые находятся в Настройках проекта. Ищите строку, которая говорит

<requestedExecutionLevel level="asInvoker" uiAccess="false" />

Изменить уровень = "asInvoker" на

  1. level="asInvoker" (тот же токен доступа, что и у родительского процесса)
  2. level="requireAdministrator (требуется полный администратор)
  3. level="highestAvailable" (максимальные привилегии, доступные текущему пользователю)
3 голосов
/ 09 октября 2008

Я еще не сделал этого, но я полагаю, что вы переходите (в VS 2008) к настройкам проекта -> вкладка приложения и нажимаете кнопку «Просмотр настроек UAC». Это открывает ваш файл app.manifest. Там есть тег, который, я думаю, содержит параметры, которые вы ищете. У меня есть несколько закомментированных опций, которые помогут вам начать:

3 голосов
/ 18 сентября 2008

В Интернете есть несколько статей о разработке процессов с повышенными правами в Vista, но по существу запросы на повышение прав включают в себя оформление сборок .NET и исполняемых файлов WIN32 со статусом повышения в файле манифеста приложения (может быть встроенным или рядом).

В вашем блоге есть отличное сообщение, содержащее код, который вам, вероятно, понадобится:

.NET Wrapper для COM возвышения

1 голос
/ 03 июля 2017

В VS 2015: Перейти к: Проект -> (имя проекта) Свойства ... -> Приложение -> Просмотреть настройки Windows и найти в app.manifest (строка 19): И изменить asInvoker на:

  1. "asInvoker" (тот же токен доступа, что и у родительского процесса)
  2. "requireAdministrator (требуется полный администратор)
  3. «наивысший доступный» (максимальные привилегии, доступные текущему пользователю)
...