В этой статье мы покажем, как выборочно отключить 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 и без пароля администратора.
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 (например, программа очистки CCleaner). Что до меня, избавляться от этой «назойливости» отключением UAC полностью как функции я КРАЙНЕ не рекомендую. Несмотря на то, что система открыто позволяет это сделать, а настройки отключения Контроля находятся в, что называется, шаговой доступности, я не всегда порой понимаю, зачем Microsoft вообще позволяет это пользователям делать. Но, так или иначе, вопрос о том, как избежать появления окна для отдельных программ насущен. Так что вернёмся к этой теме и рассмотрим вопрос как запускать программу без окна Контроля учётных записей. В конце статьи маленькая видеоиллюстрация на тему, как всё это дело выглядит вживую.
Про что в статье?
- Переменные среды
- Причём здесь App-V?
- Обходим UAC батником
- Модернизируем ярлык программы для обхода UAC
- Добавим для обхода UAC специальный пункт в контекстное меню файлов
Я позволю себе немного теории, чтобы вы сориентировались в происходящем. Как уже говорилось, мы рассмотрим два метода к решению вопроса. И тот и другой будут основаны на манипуляциях с переменными, позволяющими устанавливать «среды совместимости». С настройками исполнительных файлов в этой части, думаю, сталкивался каждый. Проверьте контекстное меню любого исполнительного файла на примере установщика популярного архиватора:
В нашей ситуации мы будем использовать возможности корректировать переменные в последней части окна, позволяющие запуск программы от имени администратора и по отношению к пользователям. И для этого можно предложить несколько вариантов развития событий. Все они, как я сказал, крутятся вокруг переменной __COMPAT_LAYER. Есть несколько опций для уточнения настроек, о которых следует помнить. Во вкладке они пере нами, а в качестве флагов для будущих команд они представлены так:
- 256Color — 8-ми разрядный цвет (256)
- 640×480 — Запуск с разрешением 640×480
- DisableThemes — Отключение визуальных эффектов
- Win98 — Запустить программу в режиме совместимости с Windows 98/Windows ME
- Win2000 — Запустить программу в режиме совместимости с Windows 2000
- WINXPSP3 — Запустить программу в режиме совместимости с Windows XP
- VistaSP2 — Запустить программу в режиме совместимости с Windows Vista
- Win7RTM — Запустить программу в режиме совместимости с Windows 7
- Win8RTM — Запустить программу в режиме совместимости с Windows 8
и т.д. С полным списком опций можно ознакомиться здесь. Таким образом, назначение переменной для конкретного случая выглядело бы примерно так:
set __COMPAT_LAYER=Win2000 640x480
Установленные настройки будут существовать до тех пор, пока есть сама переменная __COMPAT_LAYER. И переменную можно убить, остановив исполнение консольной команды, где она была прописана. Либо вручную направив «пустую» команду конкретному исполнительному файлу в виде
set __COMPAT_LAYER=
Такой подход к запуску любого исполнительного файла позволяет использовать один из самых интересных вариантов исключения окна Контроля учётных записей с помощью простого батника. То бишь batch-скрипта. Т.е. скрипт вы запустили, окно UAC не появилось. Но повторный запуск программы вновь заставит окно Контроля появиться как ни в чём не бывало, предотвращая несанкционированный запуск. Таким образом, окно UAC не появляется ИМЕННО тогда, когда это нужно пользователю.
Откуда растут ноги или кусок теории про App-V
Microsoft App-V, она же функция виртуализации приложений — компонент серверных и настольных операционных систем, функция которых разделять и изолировать устанавливаемые извне приложения со стороны от самой ОС-и и остальных программ. Программа «перехватывается» системой и динамически (в режиме онлайн) обрабатывается для показа пользователю. В нашем случае используется одна из главных возможностей функции App-V (но далеко не единственных) — Совместимость приложений различных поколений для одной и той же платформы. И от версии к версии системы менялся подход самой App-V по отношению к устанавливаемым в Windows программам. Так, в Windows XP, не имея административных прав, пользователь с некоторыми программами полноценно вообще работать не мог. А вот со времён появления Vista все приложения обязали использовать файл-манифест, уточняющий запрашиваемый уровень прав. Среди них были:
- asInvoker — запуск с ограниченными правами до момента, пока расширенные права не затребуются отдельной командой или со стороны другого запущенного от имени администратора процесса.
- highestAvailable — административный уровень; нужны права администратора, если пользователь админ; если пользователь не принадлежит к административной группе, доступ к функциям программы и её возможностям будет ограничен.
- requireAdministrator — требует административных прав; программа вообще не запустится, пока ей не предоставятся права.
В общем, учитывая тот факт, что редкая программа использовала «безобидные» функции и никуда по закоулкам системы не лазала, мало что в Windows можно запустить без предоставления ей расширенных прав. Т.е. минуя окно UAC. Частично решить этот вопрос и было призвано добавление переменой к пакету __COMPAT_LAYER=RunAsInvoker. Она заставляла систему отпихивать в сторону запрашиваемый уровень прав в виртуальной среде операндом asInvoker. К слову сказать, примерно такие же возможности достигаются утилитами SigCheck и Process Explorer от Sysyinternals. А с помощью Resource Hacker манифест можно просматривать напрямую. Но не суть.
СРАЗУ
Установка переменной __COMPAT_LAYER (первые символы — двойное подчёркивание) не повышает уровень ваших привилегий до административных. Если у вашей учётной записи таковых не имеется. Она именно не позволяет появиться окну Контроля и разрешает программе запуститься от имени любого пользователя. Таким образом использование перемененной безопасно до тех пор, пока некто не заполучит чудесным образом права Администратора. Так что любая вариация с переменными RunAsHighest (заставит UAC появиться, если права Администратора есть) или RunAsAdmin (инициирует окно Контроля всегда) относительно безопасны.
Как запускать программу без Контроля учётных записей с помощью батника?
Суть метода заключается в следующем. Каждая из запускаемых программ будет проходить процедуру присвоения переменных в режиме совместимости. Назначать вручную мы ничего не станем. Для этого подойдут возможности командной консоли, в среде которой выбранное приложение и запустится. Для этого:
- открываем Блокнот и вводим код:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "%1""
закроем его, присвоив произвольное имя, но с расширением .bat. Чтобы так сделать, вам придётся заставить Windows отображать скрытые файлы и папки.
Или скачать готовый приготовленный мною батник в архиве по ссылке:
Скачать архив с бат-файлом Запуск без UAC
Распакуйте и расположите его на Рабочем столе. Суть работы с ним проста: зацепите ярлык нужного файла .exe и перетащите на распакованный батник. Программа запустится без окна предупреждения со стороны Контроля учётных записей. Способ не всегда срабатывает при обращении к ярлыкам, созданным именно системой (в момент установки программы) из-за витиеватых настроек символьных ссылок. Потому, кому такой способ придется по душе, советую создать ярлык на рабочем столе самостоятельно с указанием на Расположение объекта. Либо воспользоваться другими способами.
Как запускать программу без Контроля учётных записей с ярлыка?
Команду выше можно применять для конкретной программы, скорректировав путь в ярлыке к ней. Для этого в поле адреса ярлыка добавим слева
cmd.exe /c SET __COMPAT_LAYER=RunAsInvoker & START «»
Т.е. вместо, допустим
"C:\Program Files\VS Revo Group\Revo Uninstaller Pro\RevoUninPro.exe"
Должно стать:
C:\Windows\System32\cmd.exe /c SET __COMPAT_LAYER=RunAsInvoker & START "" "C:\Program Files\VS Revo Group\Revo Uninstaller Pro\RevoUninPro.exe"
По необходимости смените значок ярлыка, поискав подходящий в папке с этой программой.
Вариант три: настройки реестра
С той же целью вы можете прописать в контекстном меню исполнительных файлов особый пункт. Назовём его, скажем, Запуск без окна UAC.
Для этого в текстовом редакторе типа NotePad++ (Window-возный Блокнот не подойдёт для русской локали) пропишите вот этот код:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Запуск без окна UAC"
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /whatever /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""
Сохраните файл с расширением .reg. Если соберётесь прописать контекстный пункт вручную с помощью:
- NotePad++ и ему подобного на русском, укажите кодировку Windows-1251
- Блокнота, задайте в поле команды @=»Запуск без окна UAC» вместо указанного имя типа «No_UAC», чтобы контекстное меню выглядело без кракозябров:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="No_UAC"
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /whatever /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""
Если от пункта устанете или ошибётесь на первых порах в названии, удалите параметр из cmd от имени администратора:
reg delete HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker
Как всегда, можете скачать готовый вариант reg-файла с К76 в архиве:
Скачать Запуск программы без UAC из контекстного меню
Проверяйте. Всем успехов.