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 запрос при запуске приложенния

Содержание:

  • Отключение 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 Toolkit

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

Application Compatibility Administrator

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

create application fix

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

создать файл совместимости для приложения

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

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

compatibility fix - RunAsInvoker

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

Matching Information

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

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

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

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

sdbinst -q c:\ps\regedit.sdb

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

Installation of regedit complete.

sdbinst

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

sdb файл в установленных приложениях

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

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

запуск 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_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers 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 файл с параметром RUNASINVOKER

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

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

SOLVED!

Uses drag & drop and windows shell's context menu's "open with" to write an exe wrapped vbsfile with path of the target that then opens an elevated task to defeat UAC per program - appears to be the only option capable of getting commandline arguments to work while defeating UAC.

OK — this is a multistepped issue I have overcome! (for personal use) — LOL

First I noticed that during the UAC lockscreen the commandline had 2 switches inserted before the original WScript.Arguments and it was breaking programs ability to «drag&drop» onto [exefile] or use «Open with» from context menu because the WScript.Arguments(0) was now WScript.Arguments(2).

I was able to over come this by registry entry:

**Registry Entry**
[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\FolderName\\ProgramName.exe"="~RUNASADMIN"

After doing the above the UAC entries no longer showed up on the commandline for either the context menu or drag&drop!

Now I was unable to keep the commandline arguments after making the UAC stop no matter if I used TaskScheduler or the 3rd party UAC Trust Shortcut since there was no way to add a %variable% or a «%1» with any of these programs only accepting static commandlines.

I was able to get a [vbsfile] to use drag&drop and parse all the WScript.Arguments then write that result into another [vbsfile] parsing the commandline that I could then open with Task Scheduler to a static filename then avoiding the dreaded UAC Prompt!

**VBSfile to use as drag&drop target**
Set fso=CreateObject("Scripting.FileSystemObject")
Set objFile = fso.CreateTextFile("C:\FolderName\VBStoParseCommandline.vbs" , True)
If WScript.Arguments.Count=0 Then
   hhh=""
Else
   hhh=WScript.Arguments(0)
     If Ucase(fso.GetExtensionName(hhh)) = "LNK" Then
        set Ws = CreateObject("WScript.Shell")
        set Lnk = Ws.Createshortcut(hhh)
        hhh=Lnk.TargetPath
     End If
End If  
objFile.WriteLine("CreateObject(""Wscript.Shell"").Run ""C:\FolderName\VBStoParseCommandline.vbs """"" & hhh & """"""" , 1, False")
CreateObject("Wscript.Shell").Run "SCHTASKS /Run /TN ""VBStoParseCommandline"""

Not only will this create another [vbsfile] but it will also trigger the Task Scheduler that will then open the new VBScript to open the original program with no UAC prompt!

Here is an example of the [vbsfile] that the drag&drop target file will write:

**called by the Task Scheduler**
CreateObject("Wscript.Shell").Run "C:\FolderName\OriginalProgramName.exe ""C:\FolderName\CommandlineArgumentIwasTryingToGet.png""" , 1, False

From here I had it all working with drag&drop from a shortcut [lnkfile] with a changed icon [icofile] but was unable to use the [vbsfile] with the context menu‘s «Open with» as the windows shell blocked it…

I was able to get a script wrapper named ScriptCryptor that behaves exactly as the [vbsfile] did but is now wrapped in an [exefile]. I was even able to wrap the icon from the original program and place it in the same location as ProgramNameNoUAC.exe avoiding the need for a shortcut and allowing all shell support.

Now I can Pin to Start as well as Pin to Taskbar and use context menu’s «Open with» and have no UAC Prompt on a per program basis…

Given you now can cut and paste this to your project it can be a minute or less to repeat for another program…

image of folder view with added files and «Open with» from context menu

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

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

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

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

Если программе требуются права администратора, поскольку она изменяет системные параметры или файлы, пользовательские привилегии в приложении не будут повышаться после отключения UAC. Программа по-прежнему будет работать с текущими правами пользователя, и если у вас нет прав для внесения этих изменений, программа не сможет их внести. Существует также небольшое количество приложений, которые запускаются только в режиме «Администратор», игнорируя флаг совместимости RunAsInvoker.

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

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

Запустите файл adksetup.exe и во время установки (программе необходим доступ к Интернету) выберите только пункт « Инструменты совместимости приложений» .

Microsoft Application Compatibility Tools — это бесплатный набор инструментов для устранения проблем совместимости приложений при переходе на новые версии Windows.

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

Запустите Администратор совместимости (32-разрядный) с правами администратора (!) . В узле « Пользовательские базы данных» щелкните правой кнопкой мыши « Новая база данных» и выберите « Создать новую» -> «Исправление приложения».

В следующем окне введите имя приложения (regedit), имя поставщика (Microsoft) и путь к исполняемому файлу (C: \ Windows \ System32 \ regedit.exe).

Пропустите следующее окно (режим совместимости) мастера настройки, нажав Далее . В окне исправлений совместимости установите флажок RunAsInvoker .

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

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

Совет . Чтобы защитить от подделки исполняемого файла хакером, вы можете запросить дополнительные проверки при запуске файла (например, проверка CHECKSUM, FILE_VERSION или FILE_SIZE и т. Д.). Следует отметить, что дополнительные проверки замедляют запуск приложения. 

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

Теперь вам нужно только применить пакет исправлений совместимости к нашему приложению. Это можно сделать либо из консоли администратора совместимости (выбрав в меню « Установить» ), либо из командной строки.

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

sdbinst -q c:\ps\regedit.sdb

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

Установка регедита завершена.

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

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

Теперь проверьте привилегии для запуска приложения.Запустите диспетчер задач, перейдите на вкладку «Процесс», добавьте столбец «Повышенные».Убедитесь, что процесс regedit.exe запущен от пользователя в непривилегированном режиме (Elevated = No).

В этом процессе редактора реестра пользователь может редактировать только свои собственные ключи и параметры реестра.Но если вы попытаетесь отредактировать / создать что-либо в системном ключе HKLM, появится ошибка: «У вас нет необходимых прав доступа».

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

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

sdbinst –u c:\ps\regedit.sdb

Включить флаг приложения RunAsInvoker через реестр

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

Например, для программы Regedit приложения вам необходимо создать новый параметр реестра ( REG_SZ ) в следующем разделе реестра HKEY_CURRENT_USER \ Software \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Слои:

  • Имя значения: C: \ windows \ regedit.exe
  • Значение данных: RunAsInvoker

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

HKEY_LOCAL_MACHINE \ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \ Microsoft \ Windows NT \ CurrentVersion \ AppCompatFlags \ Layers.

В домене вы можете импортировать / развертывать эти параметры реестра для пользователей через объект групповой политики .

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

Существует еще один способ запуска программы без прав администратора и обход приглашения UAC.

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

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

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

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

Как отключить контроль учетных записей Windows 10Контроль учетных записей или UAC в Windows 10 уведомляет вас при запуске программ или выполнении действий, которые требуют права администратора на компьютере (что обычно означает, что программа или действие приведет к изменению системных настроек или файлов). Сделано это с целью защитить вас от потенциально опасных действий и запуска ПО, которое может нанести вред компьютеру.

По умолчанию UAC включен и требует подтверждения для любых действий, могущих оказать влияние на операционную систему, однако вы можете отключить UAC или настроить его уведомления удобным для себя способом. В конце инструкции также имеется видео, где показаны оба способа отключения контроля учетных записей Windows 10. Примечание: если даже при отключенном контроле учетных записей какая-то из программ не запускается с сообщением, что администратор заблокировал выполнение этого приложения, должна помочь эта инструкция: Приложение заблокировано в целях защиты в Windows 10.

  • Отключение контроля учетных записей в панели управления Windows 10
  • Изменение параметров UAC в редакторе реестра
  • Отключение UAC в командной строке
  • Как отключить контроль учетных записей в редакторе локальной групповой политики
  • Видео инструкция

Как отключить контроль учетных записей в панели управления Windows 10

Первый способ — использовать соответствующий пункт в панели управления Windows 10 для изменения настроек контроля учетных записей. Прежде чем приступить, учитывайте, что для отключения UAC вам требуется наличие прав администратора. Если их нет, но вы хотите установить или запустить программу, может сработать способ из инструкции Как установить программу без прав администратора.

  1. Откройте панель управления, для этого можно использовать поиск в панели задач или нажать клавиши Win+R, ввести control и нажать Enter. А можно сразу перейти к 4-му шагу, нажав Win+R и введя UserAccountControlSettings
  2. В панели управления вверху справа в поле «Просмотр» вместо «Категории» установите «Значки», а затем откройте пункт «Учетные записи пользователей». Учетные записи пользователей в панели управления
  3. В следующем окне нажмите «Изменить параметры контроля учетных записей». Изменить параметры контроля учетных записей
  4. Далее вы можете вручную задать параметры UAC или отключить контроль учетных записей Windows 10, достаточно выбрать один из вариантов настроек работы UAC, каждый из которых пояснён далее. Отключение контроля учетных записей в панели управления

Возможные варианты настроек контроля учетных записей в панели управления от верхнего к нижнему:

  • Всегда уведомлять, когда приложения пытаются установить программное обеспечение или при изменении параметров компьютера — самый безопасный вариант, при любом своем действии, которое может что-то изменить, а также при действиях сторонних программ вы будете получать уведомление об этом. Обычные пользователи (не администраторы) должны будут ввести пароль для подтверждения действия.
  • Уведомлять только при попытках приложений внести изменения в компьютер — этот параметр установлен в Windows 10 по умолчанию. Он означает, что контролируются только действия программ, но не действия пользователя.
  • Уведомлять только при попытках приложений внести изменения в компьютер (не затемнять рабочий стол). Отличие от предыдущего пункта в том, что рабочий стол не затемняется и не блокируется, что в некоторых случаях (вирусы, трояны) может быть угрозой безопасности.
  • Не уведомлять меня — UAC отключен и не уведомляет о каких-либо изменениях в параметрах компьютера, инициированных вами или программами.

Если вы решили отключить контроль учетных записей Windows 10, что является совсем не безопасной практикой, в дальнейшем следует быть очень внимательным, поскольку все программы будут иметь к системе тот же доступ, что и вы, в то время как контроль учетных записей не сообщит, если какая-то из них может повлиять на работу системы. Иными словами, если причина отключения UAC только в том, что он «мешает», я настойчиво рекомендую включить его обратно.

Изменение параметров контроля учетных записей в редакторе реестра

Отключение UAC и выбор любого из четырех вариантов работы контроля учетных записей Windows 10 возможен и с помощью редактора реестра (чтобы запустить его нажмите Win+R на клавиатуре и введите regedit).

Параметры работы UAC определяются тремя ключами реестра, находящимися в разделе

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Включение и отключение UAC в редакторе реестра

Перейдите в этот раздел и найдите следующие параметры DWORD в правой части окна: PromptOnSecureDesktop, EnableLUA, ConsentPromptBehaviorAdmin. Для полного отключения контроля учетных записей достаточно изменить значение параметра EnableLUA на 0 (ноль), закрыть редактор реестра и перезагрузить компьютер.

Однако, когда вы меняете параметры UAC в панели управления, сама Windows 10 оперирует тремя параметрами одновременно и делает это несколько иначе (хотя предыдущий метод проще и быстрее). Далее привожу значения каждого из ключей PromptOnSecureDesktop, EnableLUA, ConsentPromptBehaviorAdmin в том порядке, как они указаны для разных вариантов оповещений контроля учетных записей.

  1. Всегда уведомлять — 1, 1, 2 соответственно.
  2. Уведомлять при попытках приложений изменить параметры (значения по умолчанию) — 1, 1, 5.
  3. Уведомлять без затемнения экрана — 0, 1, 5.
  4. Отключить UAC и не уведомлять — 0, 1, 0.

Отключение UAC в командной строке

Быстрый способ полностью отключить контроль учетных записей — использовать командную строку, для этого:

  1. Запустите командную строку от имени администратора, в Windows 10 для этого можно начать вводить «Командная строка» в поиск на панели задач, а когда найдется нужный результат — либо нажать по нему правой кнопкой мыши и выбрать нужный пункт меню, либо выбрать «Запуск от имени администратора» в панели справа.
  2. Введите команду (нажав Enter после ввода)
    reg ADD HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v EnableLUA /t REG_DWORD /d 0 /f
  3. Закройте командную строку и перезапустите компьютер или ноутбук.

По своей сути этот метод является вариантом способа с редактором реестра, который описан выше: просто нужный параметр изменяется с помощью указанной команды.

Как отключить контроль учетных записей UAC в редакторе локальной групповой политики Windows 10

Этот метод подойдёт для Windows 10 Pro и Enterprise, где присутствует редактор локальной групповой политики. Шаги будут следующими:

  1. Нажмите клавиши Win+R на клавиатуре, введите gpedit.msc и нажмите Enter.
  2. В редакторе перейдите к разделу «Конфигурация компьютера» — «Конфигурация Windows» — «Параметры Безопасности» — «Локальные политики» — «Параметры безопасности».
  3. В правой панели найдите параметр «Контроль учетных записей: все администраторы работают в режиме одобрения администратором» и дважды нажмите по нему. Настройки UAC в gpedit
  4. Установите параметр в значение «Отключен» и нажмите «Ок». Отключить контроль учетных записей в редакторе локальной групповой политики

Перезагрузка компьютера обычно не требуется.

Видео

В завершение еще раз напомню: я не рекомендую отключать контроль учетных записей ни в Windows 10 ни в других версиях ОС, если только вы абсолютно точно не знаете, для чего вам это нужно, а также являетесь достаточно опытным пользователем.

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.

uac prompt

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.

install Application Compatibility Tools on windows 10

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 Application Compatibility Administrator - 32-bit on windows 10

Run the Compatibility Administrator (32-bit) with administrator privileges (!). In the Custom Databases node, right click New Database and select Create New -> Application Fix.

create 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).

select executable to be fixed

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.

RunAsInvoker option

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.

executable file Matching Information

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.

save appliaction compatibility fix to the sdb file

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.

intall compatibility sdb file

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.

install sdb file with sdbisnt tool

After the package has been installed, the corresponding record will appear in the list of the installed Windows programs (Programs and Features).

sdb app in the Programs and Features on Windows 10

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).

non elevated regedit process in user context

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”.

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

RunAsInvoker app parameter via the registry

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%"

bat file to bypass uac prompt

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.

  • Uac windows 10 не работает
  • U001h r3b драйвер windows 10
  • Tweaking com windows repair pro для windows 10 скачать торрент
  • Tzar the burden of the crown windows 10
  • U phoria um2 драйвер скачать windows 10