Как запустить приложение от имени Администратора? Можно конечно нажать правой кнопкой мыши на приложение, из контекстного меню выбрать - "Запуск от имени администратора", но нам это не подходит.

Тогда, что мы делаем?

1. Заходим в свойства проекта (Проект->Свойства)

2. Нажимаем на кнопку:

button admin Запуск приложения от имени Администратора

3. Открывается новая вкладка с XML-текстом:

<?xml version="1.0" encoding="utf-8"?>
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <!-- Параметры манифеста UAC
            Если вы хотите изменить уровень контроля учетных записей Windows, 
            замените узел requestedExecutionLevel одним из следующих.

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

            Если вы хотите использовать виртуализацию файлов и реестра для обратной 
            совместимости, удалите узел requestedExecutionLevel.
        -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" />
      </requestedPrivileges>
    </security>
  </trustInfo>
</asmv1:assembly>

Нас будет интересовать 18-ая строка:

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

А точнее атрибут level для которого задается значение от чьего имени будет запускаться приложение.

Три значения, которые, кстати сразу прописаны:

  • asInvoker - простой пользователь, т.е права администратора не требуются.
  • requireAdministrator - собственно запуск от имени администратора
  • highestAvailable - средние права, для чего требуются - не знаю.

За место asInvoker пишем requireAdministrator

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

Теперь, что бы изменения вступили в силу, запускаем на отладку (клавиша F5)

Если студия была запущена не от имени администратора, то появится окно, которое потребует перезапустить с правами администратора - нажимаем.

startadmin 300x169 Запуск приложения от имени Администратора

Студия перезапустить и все готово. К иконки приложения должна добавиться иконка щита:

startadmins Запуск приложения от имени Администратора