Победа C#: Запустите приложение как администратора без подсказки контроля учётных записей

Мне нужен один из моих .exe, чтобы всегда работать как администратор без подсказки контроля учётных записей. Моя программа будет установлена с установкой, которая будет иметь для прав администратора времени, и я должен выполнить такой шаг в этой установке, что мой exe будет всегда выполняться как администратор без подсказки контроля учётных записей.

Я нашел 2 решения до сих пор:

1. Используйте службу поддержки, которая поднимет программу для меня.

2. Используйте планировщика задач.

Есть ли какое-либо другое решение? Некоторая декларация, вероятно?

Спасибо.

14
задан Paya 24 August 2010 в 14:05
поделиться

2 ответа

Конечно, если вы хотите просто управлять пользовательским интерфейсом, вам следует использовать флаг доступа к пользовательскому интерфейсу в своем манифесте (см. http: //msdn.microsoft.com/en-us/library/ms742884.aspx ). Если вы устанавливаете свое приложение в надежном месте (например, system32) и оно подписано (бех!), То при запуске приложения оно будет повышено до высокого (для учетной записи администратора).

Требование подписи немного раздражает, но, по крайней мере, немного снижает поверхность атаки, так как ваш код запускается с высокой степенью целостности, но не с токеном администратора.

8
ответ дан 1 December 2019 в 07:27
поделиться

Если бы это было возможно, то UAC был бы совершенно неэффективен. Неспособность приложений поднять себя без согласия пользователя является фундаментальным принципом, лежащим в основе UAC.

Кроме того, что у вас уже есть запущенный процесс с повышенными правами (например, сервис или планировщик задач), ответ - нет, это невозможно.

28
ответ дан 1 December 2019 в 07:27
поделиться