Я хочу запустить свое консольное приложение C# как администратор без UAC на учетной записи без прав администратора. Проблема в том, что когда я отключаю UAC с помощью Task Scheluder или Microsoft Compatibility Kit, мое приложение запускается с правами без прав администратора. Единственный раз, когда я могу разорвать приложение с правами администратора, это когда я щелкаю правой кнопкой мыши - запускаю как администратор и ввожу пароль. Но я не хочу этого делать. Я хочу запустить приложение на учетной записи без прав администратора с правами администратора. Я не знаю, в чем проблема. Когда я пытаюсь запустить приложение с помощью "runas" и использую учетную запись администратора с правильным паролем, мне выдается сообщение: доступ запрещен. Я не знаю, проблема в моем приложении или в чем-то еще.
Спасибо
решение1
Добавьте файл манифеста приложения и введите следующий код
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
решение2
Процесс использования планировщика заданий для «запуска с наивысшими привилегиями» не является способом обхода UAC.
Если у вас есть приложение, которому необходимо работать и взаимодействовать с вошедшим в систему пользователем, то это приложение будет работать с разрешениями пользователя. Вы можете использовать планировщик задач для запуска задачи от имени другого пользователя, но тогда она не будет взаимодействовать с вошедшим в систему пользователем. Запуск задачи от имени вошедшего в систему пользователя ограничивает приложение наивысшим разрешением, имеющимся у пользователя.
Другая процедура использования инструментария совместимости приложений также не решает проблему. Она берет некорректно работающее приложение, которое «требует» пароль администратора, но на самом деле не «нуждается» в разрешениях администратора, и делает так, что оно будет запускаться без каких-либо запросов UAC/администратора.
Если ваше приложение «требует» прав администратора, то пользователь ДОЛЖЕН запустить приложение как другой пользователь с правами администратора, используя имя пользователя и пароль этого пользователя, иначе приложение не будет работать.
Отключение UAC на компьютере не только существенно снизит безопасность системы, но и приведет к тому, что при запуске любого приложения с ограниченной учетной записью пользователя вам даже не будет предложено повысить права с учетными данными администратора, а ваше приложение, если ему требуются права администратора, завершится ошибкой.
Проблема в том, что ваше приложение требует разрешений администратора. Вот что нужно исправить. Что оно делает, что требует разрешений администратора? Почему? Перепроектируйте его так, чтобы оно этого не делало. В противном случае не существует «безопасного» способа разрешить пользователю, не являющемуся администратором, запускать приложение с разрешениями администратора. Это больше не является приемлемой практикой, и не было таковой уже много лет, разрабатывать приложения, требующие такого уровня разрешений для использования обычными пользователями.
Если вам абсолютно необходимо, чтобы стандартный пользователь запускал приложение как администратор, вы можете использовать команду «runas» или некоторые сторонние инструменты администратора, которые позволяют пользователю запрашивать доступ, а администратору удаленно отвечать, чтобы разрешить приложение. Опять же, проблема в приложении, а не в ОС. Попытка обойти это будет неприемлема в большинстве случаев использования, которые изначально требуют от пользователей использования ограниченных учетных записей.