Дополнительно
Как заставить приложение .NET запускаться от имени администратора?
После установки моей программы на клиентскую машину, как заставить мою программу запускаться от имени администратора в Windows 7?
838
12
Вы'захотите изменить манифест, который будет встроен в программу. Это работает на Visual Studio 2008 и выше: Project + Add New Item, выберите "Application Manifest File". Измените элемент `` на:
При запуске программы пользователь получит приглашение UAC. Используйте его с умом; их терпение может быстро иссякнуть.
Добавление элемента
requestedExecutionLevel
в манифест - это только половина успеха; вы должны помнить, что UAC может быть отключен. Если это так, вам придется выполнять проверку старым способом и выводить диалог ошибки, если пользователь не является администратором(вызовите
IsInRole(WindowsBuiltInRole.Administrator)
на вашем потоке'CurrentPrincipal
).Подробные шаги являются следующие.
Обратите внимание, что используя этот код, вы должны отключить параметры безопасности ClickOnce-приложений, для этого нужно зайти внутрь свойства -и GT; безопасность -> безопасности ClickOnce-приложений
Я реализовал код, чтобы сделать это вручную:
В EXE-файл можно встроить файл манифеста, который заставит Windows (7 или выше) всегда запускать программу от имени администратора.
Более подробную информацию вы найдете в Шаг 6: Создание и встраивание манифеста приложения (UAC) (MSDN).
При работе в Visual&ампер;усилитель; nbsp;студия&ампер;усилитель; nbsp;2008, правой кнопкой мыши на проекте -и gt; Добавить новый элемент
и выберите
приложения файл манифеста`.В файл манифеста, вы найдете requestedExecutionLevel тегом``, и вы можете установить уровень для трех значений:
в
<уровень=на" requestedExecutionLevel;значение asinvoker-то" для uiaccess=то"ложные" и />
Или
в
<уровень=на" requestedExecutionLevel;функции requireadministrator-то" для uiaccess=то"ложные" и />
Или
в
<уровень=на" requestedExecutionLevel;значение highestavailable-то" для uiaccess=то"ложные" и />
Чтобы установить приложение, чтобы запустить как администратор, вы должны выбрать средний.
Согласно
вы действительно хотите добавить манифест приложения, если вы Don'т уже есть один или Дон'т знаю, как, чтобы добавить один. Так как некоторые проекты не'т автоматически добавлять отдельный файл манифеста, сначала перейдите в свойства проекта, перейдите к приложения закладка и проверить, чтобы убедиться, что ваш проект не исключая проявляется в нижней части крана.
В Visual Studio 2010 и щелкните правой кнопкой мыши имя проекта. Хит "Просмотреть настройки Windows и", это создает и открывает файл под названием "Приложение.манифест" по. В этом файле замены "ключ asinvoker-то" с "функции requireadministrator" и как это объяснено в комментарии разделов в файл.
Другой способ сделать это в коде только, чтобы обнаружить, если процесс запущен в качестве администратора, как и в ответ на @НГ.. А затем откройте приложение снова и закрыть текущий.
Я использую этот код, когда приложение требует только права администратора при запуске, при определенных условиях, например при установке саму службу. Так что это не'т должны работать как админ все время как другие ответы тоже силой.
Обратите внимание, в NeedsToRunAsAdmin приведенный ниже код-это метод, который обнаруживает, если в нынешних условиях админ привилегии не требуется. Если это возвращает false код не будет возвышать себя. Это важное преимущество данного подхода над другим.
Хотя этот код имеет преимущества указано выше, не нужно повторно запускать себя в качестве нового процесса, который вовсе't всегда то, что вы хотите.
Вы можете создать манифест, используя параметры безопасности ClickOnce-приложений, а затем отключить его:
После нажатия, файл будет создан в рамках проекта'папку с свойства: приложение.Манифест после того, как это создается, снимите флажок
Включить параметры безопасности ClickOnce-приложений
Откройте этот файл и измените эту строку :
к:
При этом программа требует права администратора.
Это упрощенная версия этой ответить, выше по @НГ
Щелкните исполняемый файл, зайти в свойства > совместимость и проверяем 'выполнять эту программу от администратора' коробка.
Если вы хотите запустить его в качестве администратора для всех пользователей, сделать то же самое в 'изменить настройки для всех пользователей'.