источник:
1 |
https://winitpro.ru/index.php/2018/06/28/zapusk-programmy-bez-prav-admina-i-zaprosa-uac/ - с картинками |
из наблюдений:
1 2 3 4 5 6 7 8 9 10 11 12 |
!!! К счастью таких программ которые не запускаются от пользователя все меньше. !!! В основном это программы просмотра видеорегистраторов \ камер \ банк клиенты \ спец софт работает с железом (датчики) \ не правильный дизайн !!! программа хранит свои настройки не пойми где (например в корне системного диска, в неправильных ветках реестра) \ программа не подписана и т.д. !!! Перед тем как дать админа проверь хотя бы автозагрузку и планировщик у пользователя (sysintrnals autoruns в помощь).... антивирус... !!! Можно еще отключить UAC..... но лучше не надо :) 0. Если приемлемо(программа проверена, доверяешь разработчику и т.д.), даешь временно пользователю права локального администратора, устанавливаешь программу под пользователем, запускаешь ее (обычно на этом моменте, все что надо для работы программы создастся), проверяешь что все работает, отбираешь права у пользователя и проверяешь что все работает. 1. Если пользователю временно не льзя дать права админа то в помощь тебе придут программы processmonitor, SpyStudio, processhacker, и т.д. Ставь программу где она заработает. Смотри куда она лезит. Очень часто достаточно дать права записи\чтения на куст из реестра или на какой то файл. |
опций переменной __COMPAT_LAYER выделим следующие параметры:
1 2 3 |
RunAsInvoker — запуск приложения с привилегиями родительского процесса без запроса UAC. RunAsHighest — запуск приложения с максимальными правами, доступными пользователю (запрос UAC появляется если у пользователя есть права администратора). RunAsAdmin — запуск приложение с правами администратора (запрос AUC появляется всегда). |
Вот так можно запустить из выполнить
1 |
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "C:\Program Files\uvnc bvba\UltraVNC\vncviewer.exe" |
Вот так можно из батника
1 2 |
Set ApplicationPath="C:\Program Files\MyApp\testapp.exe" cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%" |
Вот так можно создать батник на который
1 2 3 4 5 |
0. Создать батник с_именем_каким_хотите.bat 1. Записать в него вот эту строку cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1" 2. Перетащить батник на приложение которое просит админ права 3. Приложение запустится с привилегиями родительского процесса без запроса UAC |
Запуск приложения без админ прав по правой кнопке мыши
1 2 3 4 5 6 7 8 |
0. Создаем файл имя.reg 1. В него добовляем Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker] @="Run as user without UAC elevation" [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command] @="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\"" 2. Теперь у нас по ПКМ есть возможность запустить приложения с привилегиями родительского процесса без запроса UAC |