Как отключить UAC для определенной программы в Windows 10?

В этой статье мы покажем, как выборочно отключить UAC для определенного приложения, не отключая полностью эту службу User Account Control. Рассмотрим несколько способов отключения контроля учетных записей для приложениия с помощью флага совместимости RunAsInvoker .

Система контроля учетных записей (User Account Control или UAC) запрашивает у пользователя подтверждение на выполнение любого действия, требующего прав администратора. Это довольно эффективный механизм защиты Windows от различных угроз (вирусы, трояны, черви, руткиты и т.п). Некоторый пользователей раздражает окно UAC и они полностью отключают контроль учетных записей , хотя Microsoft и специалисты в области ИБ категорически не рекомендуют делать это.

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

Если программа требует прав администратора для запуска, т.к. меняет настройки системы или системные файлы, то при отключении UAC для нее привилегии пользователя в приложении не повышаются. Программа все равно будет запускаться с правами текущего пользователя и, если у нет полномочий на эти изменения, программа не сможет их внести. Также есть небольшое количество приложений, которые запускаются только в режиме “As administrator”, игнорирующие флаг совместимости RunAsInvoker.

В качестве примера мы отключим появление запроса User Account Control для редактора реестра ( regedit.exe ). Несмотря на то, что у моей учетной записи есть права администратора, при запуске утилиты все равно появляется запрос UAC на подтверждение запуска.

Отключение UAC для программы с помощью Application Compatibility Toolkit

Нам понадобится утилита Application Compatibility Toolkit , которая входит в состав Windows ADK. Скачать актуальную версию Windows ADK для Windows 10 можно здесь .

Запустите скачанный файл adksetup.exe и при установке (программе нужен доступ в Интернет) выберите только Application Compatibility Toolkit .

Примечание . Пакет Microsoft Application Compatibility Toolkit – бесплатный набор утилит, предназначенный для устранения проблем совместимости приложений при переходе на новые версии Windows.

В системе появится две версии Application Compatibility Administrator — 32-х и 64-х битная версия. Запустите версию Application Compatibility Administrator в зависимости от разрядности приложения, для которого вы хотите подавить запрос UAC.

Запустите утилиту Compatibility Administrator (32-bit) с правами администратора ( ! ) . В разделе Custom Databases, щелкните ПКМ по элементу New Database и выберите пункт Create New-> Application Fix.

В открывшемся окне нужно указать имя приложения (regedit), производителя (Microsoft) и путь к исполняемому файлу ( C:Windowsregedit.exe ).

Пропустите следующее окно мастера настройки ( Compatibility Mode) , нажав Next . В окне Compatibility Fixes отметьте опцию RunAsInvoker .

При желании можно убедиться, что приложение может работать без UAC, нажав на кнопку тестового запуска ( Test Run ).

В окне Matching Information вы можете указать какие параметры приложения нужно проверять (версию, чексумму, размер и т.д.). Я оставил включенными проверки COMPANY_NAME,PRODUCT_NAME и ORIGINAL_FILENAME, чтобы не пересоздавать файл исправления после очередного обновления Windows 10 и обновлении версии файла regedit.

Совет . Для защиты от подмены исполняемого файла злоумышленником желательно использовать проверку по checksum, file_version и size. Отметим, что дополнительные проверки будут несколько замедлять запуск приложения.

Нажмите Finish и укажите имя файла, в который нужно сохранить созданный пакет исправления совместимости, например regedit.sdb . В этом файле будут содержаться инструкции по запуску приложения с заданными опциями совместимости.

Осталось применить пакет с исправлением совместимости к вашему приложению. Сделать это можно непосредственно из консоли Compatibility Administrator (выбрав в меню пункт Install ), либо из командной строки.

Для этого откройте командную строку с правами администратора и выполните команду:

sdbinst -q c:psregedit.sdb

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

Installation of regedit complete.

После установки пакета, соответствующая запись появится в списке установленных программ Windows (Programs and Features).

Попробуйте теперь запустить приложение в сессии пользователя без прав локального администратора. Теперь оно должно запуститься без появления запроса UAC.

Теперь проверьте, с какими привилегиями запущено данное приложение. Для этого в Task Manager на вкладке процессов добавьте столбец “Elevated”. Убедитесь, что процесс regedit.exe запущен от пользователя в непривилегированном режиме ( Elevated=No ).

В таком процесс редактора реестра пользователь может редактировать только собственные ветки реестра, но при попытке отредактировать/создать что-то в системной HKLM, появляется ошибка “ You don’t have the requisite permissions ”.

В дальнейшем это исправление совместимости можно распространить на компьютеры пользователей с помощью групповых политик. Тем самым можно добиться отключения проверки системы контроля учетных записей (UAC) для определенных приложений на множестве компьютеров в домене Active Directory.

Чтобы удалить исправление совместимости, выполните команду

sdbinst –u c:psregedit.sdb

Включить флаг RUNASINVOKER для программы через реестр

В Windows 10/8.1/7 вы можете включить флаг совместимости RUNASINVOKER через реестр. Флаг совместимости приложения можно выставить для одного пользователя или для всех пользователей компьютера:

Например, для regedit нужно в ветке реестра HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers создать новый строковый параметр ( REG_SZ ) вида:

  • Value name: C:windowsregedit.exe
  • Value data: RunAsInvoker

Если нужно включить режим совместимости приложения для всех пользователей компьютера, этот параметр нужно создать в ветке реестра: HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionAppCompatFlagsLayers.

В домене можно распространить эти настройки реестра пользователям через GPO .

Bat файл для запуска приложения в режиме RunAsInvoker

Есть еще вариант для запуск приложения без прав администратора и подавлением запроса UAC (см. статью ).

Просто создайте bat файл со следующим кодом:

Set ApplicationPath="C:windowsregedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

При запуске этого bat файла под пользователем, указанное приложение запустится без появления запроса UAC.

Итак, мы рассмотрели, как отключить UAC для конкретной программы без полного отключения контроля учетных записей. Это позволит вам запускать программы Windows под обычным пользователем без появления запроса UAC и без пароля администратора.

admin

Share
Published by
admin

Recent Posts

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

6 дней ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago