Отключение UAC программно - PullRequest
19 голосов
/ 25 марта 2009

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

Обновление:

Я ищу что-то в соответствии с тем, что упомянул Kosi2801, в основном, чтобы попросить пользователя всегда запускать программу в «повышенном» режиме. Я бы хотел, чтобы разрешение было единичным, я не говорю, что программно отключаю UAC, не спрашивая разрешения. Я уверен, что есть много программ, которые должны работать в этом режиме (особенно программы, связанные с аппаратным обеспечением), поэтому должен быть какой-то способ приспособиться к нему.

Ответы [ 8 ]

16 голосов
/ 29 июля 2010

Установите значение EnableLUA DWORD в HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System на 0 и перезагрузите компьютер.

это отключит UAC без проблем, я бы сделал это для всех ваших пользователей, с или без разрешения, зависит от вас, потому что Vista UAC настолько ужасна, что я верю, что меньше людей, у которых это есть, к лучшему ( только в Vista) теперь лучше в win7.

весело проведите время с моим трюком в реестре:)

работает и в win7, дайте мне знать, как вы с ней справились.

15 голосов
/ 25 марта 2009

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

Это заставит его запрашивать один раз при запуске, но не каждый раз, когда ему нужен доступ.

Для этого вам нужно создать файл манифеста и установить <requestedExecutionLevel level="requireAdministrator">

Подробнее см. В MSDN.

10 голосов
/ 25 марта 2009

Целью UAC является предотвращение выполнения нежелательных приложений. Если бы было возможно отключить его программно, это было бы бесполезно.

2 голосов
/ 25 декабря 2015

Я разместил здесь несколько гранулярное (но некрасивое) решение

http://stackoverflow.com/questions/5344021/bypass-uac-in-vbscript/34445992#34445992

Это работает, только если вы можете запустить приложение из планировщика задач. Он у меня работает на двух ноутбуках с Windows 7. Это административное решение. Вам нужна привилегия администратора для ее реализации. Я использую его для powershell и для моего приложения резервного питания UPS. Я подозреваю, что найду другое применение.

0 голосов
/ 14 мая 2015

Я создал небольшое приложение для этого, но в основном нужно установить 4 ключа реестра.

C # пример:

Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System","EnableLUA", 0);

Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "ConsentPromptBehaviorAdmin", 0);

Microsoft.Win32.Registry.SetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", "PromptOnSecureDesktop", 0);

Microsoft.Win32.Registry.SetValue("HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Action Center\\Checks\\{C8E6F269-B90A-4053-A3BE-499AFCEC98C4}.check.0", "CheckSetting", StringToByteArray("23004100430042006C006F00620000000000000000000000010000000000000000000000"), RegistryValueKind.Binary);

Мое приложение запускается как служба каждые 5 минут, чтобы «бороться» с групповой политикой, что является абсолютным раздражением для компьютера разработчика.

https://github.com/zleight1/DisableUAC

0 голосов
/ 10 октября 2012

UAC является необходимым злом, как использование семафоров в городе. Я предлагаю адаптироваться к новой парадигме. Лично мне не нравится UAC; но я понимаю цель и пользу. К сожалению, мы все создали этого монстра. Не вернемся к 1983 году, сделаем краткую оценку изменений за эти годы, и тогда мы поймем Конечно, если намерение предназначено для частного использования, все возможно, как указано выше; но это было бы рискованно и превратилось бы в черную дыру.

0 голосов
/ 25 марта 2009

Отключение UAC программным способом отрицательно скажется на его назначении, поскольку это также может быть сделано вредоносными программами, червями, троянами и вирусами и не окажет никакого реального эффекта безопасности.

Вам может потребоваться запустить приложение под учетной записью администратора или (я думаю) позволить Microsoft как-то подписать ваше приложение.

Могут быть и другие способы, о которых я не знаю, но ни один из них не программно!

0 голосов
/ 25 марта 2009

Это победит объект UAC. Так что нет, вы не можете.

...