В этой статье мы покажем, как выборочно отключить 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
- Включить флаг RUNASINVOKER для программы через реестр
- Bat файл для запуска приложения в режиме RunAsInvoker
Отключение 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:\Windows\regedit.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:\ps\regedit.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:\ps\regedit.sdb
Включить флаг RUNASINVOKER для программы через реестр
В Windows 10/8.1/7 вы можете включить флаг совместимости RUNASINVOKER через реестр. Флаг совместимости приложения можно выставить для одного пользователя или для всех пользователей компьютера:
Например, для regedit нужно в ветке реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers создать новый строковый параметр (REG_SZ) вида:
- Value name: C:\windows\regedit.exe
- Value data: RunAsInvoker
Если нужно включить режим совместимости приложения для всех пользователей компьютера, этот параметр нужно создать в ветке реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers.
В домене можно распространить эти настройки реестра пользователям через GPO.
Bat файл для запуска приложения в режиме RunAsInvoker
Есть еще вариант для запуск приложения без прав администратора и подавлением запроса UAC (см. статью).
Просто создайте bat файл со следующим кодом:
Set ApplicationPath="C:\windows\regedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
При запуске этого bat файла под пользователем, указанное приложение запустится без появления запроса UAC.
Итак, мы рассмотрели, как отключить UAC для конкретной программы без полного отключения контроля учетных записей. Это позволит вам запускать программы Windows под обычным пользователем без появления запроса UAC и без пароля администратора.
При запуске программ, требующих прав администратора на компьютере или нахождении таких программ в автозагрузке появляется запрос контроля учётных записей, где пользователю с правами администратора требуется нажать «Да», без них — ввести пароль учетной записи с наличием соответствующих прав.
Это не всем удобно, а также существуют ситуации, в котором нажатие затруднено, например, компьютер включается и работает удаленно. Некоторые пользователи отключают UAC Windows полностью, что не вполне безопасно и не может быть рекомендацией. В некоторых случаях может пригодиться другая возможно — отключение запроса контроля учётных записей только для конкретного приложения. О способах сделать это и пойдёт речь далее в инструкции.
Планировщик заданий
Наиболее простой и эффективный способ запуска программы, требующей прав администратора без запроса контроля учетных записей, работающий во всех актуальных версиях Windows и — использование планировщика заданий. Именно его я рекомендую использовать.
При этом подход позволяет выполнять не только автоматический запуск программы без UAC, например, при входе в систему, но и запуск вручную, например, с ярлыка.
Достаточно выполнить следующие шаги (для их выполнения права администратора потребуются):
- Запустите Планировщик заданий: Win+R — taskschd.msc или используйте поиск в панели задач.
- Выберите пункт «Создать задачу» в панели справа или в контекстном меню в библиотеке планировщика.
- Укажите желаемое имя задачи и обязательно отметьте пункт «Выполнить с наивысшими правами».
- Создайте новый триггер на соответствующей вкладке. Например — «При запуске» для ручного запуска программы без запроса контроля учетных записей или «При входе в систему» для её автозагрузки без появления окна UAC.
- Создайте действие — «Запуск программы» и укажите путь к нужному исполняемому файлу.
- На вкладке «Условия» можно отключить опцию «Запускать только при питании от электросети», если требуется запуск на ноутбуке, в том числе и при питании от батареи.
- Сохраните задание.
Если в качестве триггера вы установили «При входе в систему» (или, например, «По расписанию»), программа в соответствующий момент будет запускаться без запроса прав автоматически.
Если же была выбрана опция «При запуске», и вы хотите вручную запускать программу, достаточно будет создать ярлык или иным образом (например, в окне Win+R) выполнить команду:
C:\Windows\System32\schtasks.exe /run /tn "Имя_задания"
Соответствующий ярлык или команда запустит программу с правами администратора, но без появления запроса учетных записей.
RunAsInvoker
Windows позволяет запустить программы, в манифесте которых прописано требование прав администратора от имени пользователя с помощью флагов совместимости, в частности — RunAsInvoker. Результат действия:
- Программа будет запущена без запроса UAC.
- Доступ к функциям, для которых действительно требуются права администратора (например, запись в реестр или системные папки) будет отсутствовать. Но иногда это не мешает её работе: некоторым программам доступ к правам администратора требуется лишь для отдельных функций или при первоначальной настройке.
Способы реализации:
- В редакторе реестра перейти к разделу
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
и создать строковый параметр с именем, которое будет представлять собой полный путь к EXE программы и значением RUNASINVOKER
- Использовать команду
reg add "HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" /v "путь_к_программе.exe" /t REG_SZ /d "RUNASINVOKER" /f
в командной строке, запущенной от имени администратора.
Эти действия сделают так, что программа по умолчанию всегда будет запускаться без запроса Контроля учетных записей и прав администратора, кроме случаев, когда запуск от имени администратора был выполнен принудительно.
Ещё один вариант, без внесения чего-либо в реестр — создать ярлык и использовать следующую запись в поле «Объект»:
cmd /C "set __COMPAT_LAYER=RunAsInvoker && start "" "путь_к_файлу.exe""
Этот ярлык также запустит программу без запроса UAC, но и без возможности выполнять действия, требующие прав администратора.
Запуск от имени системной учетной записи «Администратор»
Я не могу рекомендовать этот способ, поскольку он потенциально небезопасен, но он также позволяет выполнить запуск программы от имени Администратора без запроса Контроля учетных записей:
- Включите системную учетную запись «Администратор», например, с помощью команды
net user Администратор /active:yes
Подробнее на тему — в отдельной инструкции.
- Установите пароль (замените слово пароль в команде на нужный вам пароль и не забудьте его) для этой учетной записи с помощью команды
net user Администратор пароль
- Введите команду
runas /profile /user:Администратор /savecred "путь_к_программе.exe"
- При выполнении команды в первый раз будет запрошен пароль, но в дальнейшем, её же выполнение требовать пароля уже не будет (только если вы не решите запустить другую программу).
Эту же команду можно прописать как «Объект» в ярлыке для запуска программы без запроса UAC с него.
Сторонние программы
Существуют сторонние инструменты, позволяющие реализовать запуск программы с правами администратора без показа окна контроля учетных записей. Одна из них — Skip UAC Prompt описывалась в отдельной инструкции на сайте.
Ещё одна, старая, но исправно работающая и в Windows 11 — UAC Trust Shortcut (придётся найти на сторонних сайтах, официальный не работает, обязательно проверьте на VirusTotal).
После установки программы (также потребуется .NET Framework 3.5, будет загружен автоматически при отсутствии) достаточно указать программу и имя ярлыка, нажать по ссылке «Add now» и ярлык для запуска программы появится на рабочем столе.
В свойствах ярлыка можно увидеть, что запуск производится с помощью инструмента ucmd.exe — его можно использовать и вручную, не прибегая к графическому интерфейсу программы. Но потребуется разрешить работу программы в качестве службы, что будет предложено после первой перезагрузки.
Все способы:
- Способ 1: Редактор локальных политик
- Способ 2: Редактирование реестра
- Способ 3: Использование «Командной строки»
- Способ 4: Учетная запись Администратора
- Способ 5: Удаление цифровой подписи программы
- Вопросы и ответы: 0
Способ 1: Редактор локальных политик
Основной причиной блокировки приложения функцией контроля учетных записей является поврежденная, поддельная или запрещенная настройками безопасности Windows цифровая подпись исполняемого файла. Пользователи Windows 10 Pro и выше, уверенные в надежности запускаемого программного обеспечения, могут отключить блокировку UAC в «Редакторе локальной групповой политики».
- Откройте окошко быстрого запуска нажатием клавиш Win + R, введите в него команду gpedit.msc и нажмите клавишу ввода, чтобы запустить «Редактор локальных групповых политик».
- В окне редактора перейдите к настройке «Конфигурация компьютера» → «Конфигурация Windows» → «Параметры безопасности» → «Локальные политики» → «Параметры безопасности». Справа найдите политику «Контроль учетных записей: все администраторы работают в режиме одобрения администратором» и откройте ее настройки двойным кликом.
- Отключите политику, сохраните настройки и перезагрузите компьютер.
Способ 2: Редактирование реестра
Пользователи Windows 10 Home могут отключить функцию блокировки путем применения несложного твика реестра.
- Запустите «Редактор реестра», выполнив команду
regedit
в окошке быстрого запуска. - Разверните ветку
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
, найдите справа параметр «EnableLUA» и кликните по нему дважды, чтобы открыть окошко редактирования. - Измените значение параметра с «1» на «0», закройте «Редактор реестра» и перезагрузите компьютер.
Результат будет тот же, что и в случае изменения политики, указанной в Способе 1.
Примечание: отключение функции блокировки недоверенных приложений понижает общий уровень защиты системы, поэтому после выполнения действий с исполняемым файлом исходные настройки желательно восстановить.
Способ 3: Использование «Командной строки»
Запустить блокируемую контролем учетных записей программы можно и без отключения функции блокировки. Этот способ считается наиболее безопасным, так как не предусматривает глобальное изменение настроек безопасности.
- Запустите классическую «Командную строку» от имени администратора из поиска Windows.
- Введите в консоли полный путь к исполняемому файлу блокируемой UAC программы и нажмите клавишу ввода. Если путь содержит пробелы или кириллицу, заключите его в двойные прямые кавычки.
Программа должна запуститься в обход блокировки контроля учетных записей. Не закрывайте окно консоли, пока не закончите работу с программой или ее установщиком (если выполняете установку).
Способ 4: Учетная запись Администратора
Для обхода ограничений контроля учетных записей также можно использовать встроенную учетную запись Администратора, обладающую более высокими привилегиями, чем обычный администратор. Чтобы ее активировать, выполните в запущенной с повышенными правами «Командной строке» или консоли «PowerShell» команду user Администратор /active:yes
.
Выйдите из текущей учетной записи, войдите в активированную запись Администратора и выполните нужные действия с программой.
Способ 5: Удаление цифровой подписи программы
Если перечисленные выше способы обхода блокировки исполняемых файлов можно назвать традиционными, то этот способ является альтернативным. Заключается он в удалении цифровой подписи блокируемого исполняемого файла специальной утилитой File Unsigner.
Скачать File Unsigner с официального сайта
- Скачайте архив с утилитой File Unsigner с сайта разработчика и распакуйте для удобства в ту же папку, где находится EXE-файл программы, которую необходимо разблокировать.
- Перетащите этот EXE-файл на исполняемый файл утилиты File Unsigner. При этом должно открыться окно «Командной строки», в котором будет указан статус операции. Сообщение «Successfully unsigned имя файла» означает, что цифровая подпись успешно удалена. Как вариант, можно запустить «Командную строку» от имени администратора, сформировать и выполнить в ней команду следующего вида:
путь_к_файлу_fileunsigner.exe /f путь_к_файлу_программы.exe
.
После удаления цифровой подписи программа должна запуститься в штатном режиме. Однако нельзя исключать, что при запуске исполняемого файла программы появится окно фильтра SmartScreen, в котором необходимо будет подтвердить открытие неподписанного приложения.
Наша группа в TelegramПолезные советы и помощь
In this article, we will show how to selectively disable UAC for a specific application without disabling User Account Control service completely. Consider several ways to turn off UAC for one app using the RunAsInvoker compatibility flag.
User Account Control asks the user to confirm any action that requires administrator privileges. This is a fairly effective mechanism for protecting Windows from a number of threats (viruses, trojans, worms, rootkits, etc.). Some users find the popping up UAC windows annoying, and they prefer to disable this security feature, although Microsoft and security experts strongly recommend not doing this.
The RunAsInvoker flag allows you to run the application with a marker inherited from the parent process. This cancels the processing of the application manifest, and the discovery of the installer processes. This parameter doesn’t provide administrator privileges, but only bypasses UAC prompt.
As an example, we will disable the User Account Control prompt for the registry editor (regedit.exe). Despite the fact that my account has local administrator privileges, when I run the utility, a UAC request still appears to confirm the launch.
If the program requires administrator permissions since it changes the system settings or files, the user privileges in the application won’t elevate after disabling UAC. The program will still run under current user permissions, and if you do not have the authority to make these changes, the program won’t be able to make them. There are also a small number of applications that run only in “As an administrator” mode, ignoring the RunAsInvoker compatibility flag.
Contents:
- Disabling UAC for a program using the Application Compatibility Toolkit
- Enable the RunAsInvoker App Flag via the Registry
- Batch file to Run the Application in the RunAsInvoker Mode
Disabling UAC for a program using the Application Compatibility Toolkit
We need to install the Application Compatibility Toolkit, which is part of the Windows ADK. Download the latest version of the Windows ADK for Windows 10 here.
Run the adksetup.exe file and during installation (the program needs Internet access), select only the Application Compatibility Tools item.
Microsoft Application Compatibility Tools is a free set of tools to fix app compatibility issues when migrating to the new Windows versions.
There are two versions of Application Compatibility Administrator in the system – 32-bit and 64-bit. Run the version of Application Compatibility Administrator depending on the application bitness for which you want to disable the UAC request.
Run the Compatibility Administrator (32-bit) with administrator privileges (!). In the Custom Databases node, right click New Database and select Create New -> Application Fix.
In the following window, enter the name of the application (regedit), the vendor name (Microsoft) and the path to the executable file (C:\Windows\System32\regedit.exe).
Skip the next window (Compatibility Mode) of the configuration wizard by pressing Next. In the Compatibility Fixes window, check the option RunAsInvoker.
You can make sure that the application can run without UAC by pressing the Test Run button.
In the Matching Information dialog, you can specify which application parameters should be checked (version, checksum, size, etc.). I left the COMPANY_NAME, PRODUCT_NAME and ORIGINAL_FILENAME options checked to avoid the recreation of the compatibility patch file after the next Windows 10 update.
Tip. To protect against the spoofing of the executable by a hacker, you can request additional checks when running the file (e. g., CHECKSUM, FILE_VERSION or FILE_SIZE verification, etc.). It should be noted that the additional checks will slow down the app startup.
Click Finish and specify the name of the file the compatibility fixing package has to be saved to, e. g., regedit.sdb. This file will contain instructions for starting the application with the specified compatibility options.
Now you only have to apply the compatibility fix package to our application. You can do it either from the Compatibility Administrator console (choosing Install in the menu) or from the command prompt.
To do it, run elevated command prompt and execute the following command:
sdbinst -q c:\ps\regedit.sdb
If you have done it right, a message of successful package installation appears.
Installation of regedit complete.
After the package has been installed, the corresponding record will appear in the list of the installed Windows programs (Programs and Features).
Try now to run the application in a user session without local administrator permissions. Now it should start without a UAC request.
Now check the privileges for running application. Run the Task Manager, go to the Process tab, add the “Elevated” column. Make sure that the regedit.exe process is started from the user in the unprivileged mode (Elevated = No).
In this registry editor process, the user can only edit his own registry keys and parameters. But if you try to edit/create something in the system HKLM key, an error appears: “You don’t have the requisite permissions”.
Later this compatibility fix can be distributed to all user computers using the Group Policies. Thus you can disable UAC checks for the specific applications on multiple computers in an Active Directory domain.
To remove the compatibility fix, run the command:
sdbinst –u c:\ps\regedit.sdb
Enable the RunAsInvoker App Flag via the Registry
You can enable the RUNASINVOKER compatibility flag in Windows 10/8.1/7 through the registry. The application compatibility flag can be set for a single or for all computer users.
For example, for regedit app you need to create a new registry parameter (REG_SZ) in the following registry key HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers:
- Value name: C:\windows\regedit.exe
- Value data: RunAsInvoker
If you want to enable application compatibility mode for all local computer users, you need to create this parameter in the different registry key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers.
In the domain, you can import/deploy these registry settings to users through a GPO.
Batch file to Run the Application in the RunAsInvoker Mode
There is another way to run the program without admin privileges and bypassing the UAC prompt (see the article).
Just create a .bat file with the following code:
Set ApplicationPath="C:\windows\regedit.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
When this bat file is being run under a common user, the specified application will start without a UAC prompt.
So, we looked at how to disable UAC for a specific program without completely disabling User Account Control. This will allow you to run Windows programs under non-admin without a UAC prompt and without entering an administrator password.
Applies ToWindows 11 Windows 10
Контроль учетных записей (UAC) предназначен для предотвращения несанкционированных изменений в Windows.
Если для действия требуются разрешения уровня администратора, контроль учетных записей предлагает утвердить или отклонить изменение. Это помогает защитить устройство с Windows от вредоносных программ и несанкционированных изменений.
Поведение контроля учетных записей можно изменить, открыв параметры панель управления > система и безопасность > изменить контроль учетных записей пользователей.
Переместите ползунок на нужный уровень уведомлений и нажмите кнопку ОК, чтобы сохранить изменения.
Разверните следующие разделы, чтобы узнать больше о каждом варианте контроля учетных записей.
-
Уведомлять вас о попытках программ установить программное обеспечение или внести изменения в устройство
-
Уведомление о внесении изменений в параметры Windows
-
Замораживание других задач до тех пор, пока вы не ответите
Примечание: Этот вариант рекомендуется, если вы регулярно устанавливаете новое программное обеспечение или посещаете незнакомые веб-сайты.
-
Уведомлять вас о попытках программ установить программное обеспечение или внести изменения в компьютер
-
Не уведомлять вас о внесении изменений в параметры Windows
-
Замораживание других задач до тех пор, пока вы не ответите
Примечание: Этот вариант рекомендуется, если вы регулярно устанавливаете новое программное обеспечение или посещаете незнакомые веб-сайты, но не хотите получать уведомления о внесении изменений в параметры Windows.
-
Уведомлять вас о попытках программ установить программное обеспечение или внести изменения в устройство
-
Не уведомлять вас о внесении изменений в параметры Windows
-
Не замораживать другие задачи или ждать ответа
Примечание: Этот вариант рекомендуется использовать только в том случае, если на то, чтобы затемнить рабочий стол на компьютере, требуется много времени. В противном случае рекомендуется выбрать один из параметров, описанных выше.
-
Не уведомлять вас, когда программы пытаются установить программное обеспечение или внести изменения в устройство
-
Не уведомлять вас о внесении изменений в параметры Windows
-
Не замораживать другие задачи или ждать ответа
Внимание: Этот параметр не рекомендуется использовать из-за проблем с безопасностью.
Нужна дополнительная помощь?
Нужны дополнительные параметры?
Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.