Некоторые программы при запуске могут требовать повышения прав до администратора (значок щита у иконки), однако на самом деле для их нормальной работы права администратора не требуется (например, вы можете вручную предоставить необходимые NTFS разрешения пользователям на каталог программы в Program Files и ее ветки реестра). Если на компьютере включен контроль учетных записей (User Account Control), то при запуске такой программы из-под непривилегированного пользователя появится запрос UAC и Windows потребует от пользователя ввести пароль администратора. Чтобы обойти этот механизм многие просто отключают UAC или предоставляют пользователю права администратора на компьютере, добавляя его в группу локальных администраторов. Оба эти способа не рекомендуется широкого использовать, т.к. вы снижаете безопасность и защиту Windows. В этой статье мы рассмотрим, как запустить программу, которая требует права администратора, от имени простого пользователя и подавить запрос повышения привилегий UAC.
Содержание:
- Предоставить пользователю права на запуск программы
- Запуск программы, требующей права администратора, от обычного пользователя
- Запуск программы в режиме RunAsInvoker из командной строки
- Включить режим RunAsInvoker в манифесте exe файла программы
- Запуск программы с сохраненным паролем администратора
Предоставить пользователю права на запуск программы
Программа может запрашивать права администратора при запуске, если:
- Программе нужно получить доступ на системный каталог или файл, на отсутствуют NTFS разрешения для непривилегированных пользователей;
- Если программа собрана со специальным флагом, которые требует повышения прав при запуске (requireAdministrator).
В первом случае для решения проблемы администратору достаточно предоставить RW или Full Control разрешения на каталог программы или необходимый системных каталог. Например, программа хранит свои файлы (логи, файлы конфигурации и т.д.) в собственной папке в C:\Program Files (x86)\SomeApp) или каком-то системном каталоге. Для корректной работы программы пользователю нужны права записи в эти файлы. По умолчанию у пользователей нет прав на редактирование данного каталога, соответственно, для нормальной работы такой программы нужны права администратора.
Чтобы разрешить запуск программы под непривилегированным пользователем администратора достаточно вручную предоставить пользователю (или встроенной группе Users) права на изменение/запись на файл/каталог на уровне файловой системы NTFS.
Чтобы найти список файлов, папок и ключей реестра, к которым обращается программа, воспользуйтесь утилитой Process Monitor (https://learn.microsoft.com/en-us/sysinternals/downloads/procmon). Включите фильтр по имени процесса программы и найдите все ресурсы, при доступе к которым появляется Access Denied. Предоставьте необходимые права на папки/файлы/ветки реестра.
Примечание. В рекомендациях Microsoft для разработчиков указано, что не рекомендуется хранить изменяющиеся данных приложения в каталоге C:\Program Files неверна. Правильнее хранить данные приложения в профиле пользователя. Но это уже вопрос о лени и некомпетентности разработчиков программ.
Запуск программы, требующей права администратора, от обычного пользователя
Ранее мы уже описывали, как можно с помощью параметра RunAsInvoker отключить запрос UAC для конкретной программы. Однако этот метод недостаточно гибкий.
Рассмотрим более простой способ принудительного запуска любой программы без прав администратора (и без ввода пароля админа) при включенном UAC (4,3 или 2 уровень ползунка UAC).
Для примера возьмем утилиту редактирования реестра — regedit.exe (она находится в каталоге C:\windows\). Обратите внимание на щит UAC у иконки. Данный значок означает, что для запуска этой программы будет запрошено повышение привилегий через UAC.
Если запустить
regedit.exe
, то перед вами появится окно User Account Contol с запросом пароля пользователя с правами администратора на этом компьютере (
Do you want to allow this app to make changes to your device?
). Если не указать пароль и не подтвердить повышение привилегии, приложение не запустится.
Попробуем обойти запрос UAC для этой программы. Создайте на рабочем столе файл run-as-non-admin.bat со следующим текстом:
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"
Теперь для принудительного запуска приложения без прав администратора и подавлением запроса UAC, просто перетащите нужный exe файл на этот bat файл на рабочем столе.
Редактор реестра должен запуститься без появления запроса UAC и без ввода пароля администратора. Откройте диспетчер процессов, добавьте столбец Elevated и убедитесь, что в Windows запушен непривилегированный процесс regedit (запущен с правами пользователя).
Попробуйте отредактировать любой параметр в ветке HKEY_LOCAL_MACHINE. Как вы видите доступ на редактирование реестра в этой ветке запрещен (у данного пользователя нет прав на запись в системные ветки реестра). Но вы можете добавлять и редактировать ключи в собственной ветке реестра пользователя — HKEY_CURRENT_USER.
Аналогичным образом через bat файл можно запускать и конкретное приложение, достаточно указать путь к исполняемому файлу.
run-app-as-non-admin.bat
Set ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"
Также можно добавить контекстное меню, которое добавляет у всех приложений возможность запуска без повышения прав. Для этого создайте файл runasuser.reg файл, скопируйте в него следующий код, сохраните и импортируйте его в реестр двойным щелчком по reg файлу (понадобятся права администратора).
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\"\""
После этого для запуска любого приложения без прав админа достаточно выбрать пункт “Run as user without UAC elevation” в контекстном меню проводника Windows File Explorer.
Еще раз напомню, что использование программы в режиме RUNASINVOKER не запускает приложение с правами администратора. Параметр AsInvoker подавляет запрос UAC и указывает программе, что она должна запуститься с правами текущего пользователя и не запрашивать повышение привилегий. Если программе действительно нужны повышенные права для редактирования системных параметров или файлов, она не будет работать или повторно запросит права администратора.
Запуск программы в режиме RunAsInvoker из командной строки
Переменная окружения __COMPAT_LAYER позволяет устанавливать различные уровни совместимости для приложений (вкладка Совместимость в свойствах exe файла). С помощью этой переменной можно указать настройки совместимости, с которыми нужно запускать программу. Например, для запуска приложения в режиме совместимости с Windows 7 и разрешением 640×480, установите:
set __COMPAT_LAYER=Win7RTM 640x480
Из интересных нам опций переменной __COMPAT_LAYER можно выделить следующие параметры:
- RunAsInvoker — запуск приложения с привилегиями родительского процесса без запроса UAC;
- RunAsHighest — запуск приложения с максимальными правами, доступными пользователю (запрос UAC появляется, если у пользователя есть права администратора);
- RunAsAdmin — запустить приложение с правами администратора (запрос AUC появляется всегда).
Следующие команды включат режим RUNASINVOKER для текущего процесса и запускает указанную программу:
set __COMPAT_LAYER=RUNASINVOKER
start "" "C:\Program Files\MyApp\testapp.exe"
Включить режим RunAsInvoker в манифесте exe файла программы
Как мы уже говорили выше, Windows показывает значок щита UAC у программ, которые требуют повышенных привилегий для запуска. Это требование разработчики задают при разработке в специальной секции программы — манифесте.
Вы можете отредактировать манифест исполняемого exe файла программы и отключить требование запускать программу в привилегированном режиме.
Для редактирования манифеста программы можно использовать бесплатную утилиту Resource Hacker. Откройте исполняемый файл программы в Resource Hacker.
В дереве слева перейдите в раздел Manifest и откройте манифест программы. Обратите внимание на строки:
<requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges>
Именно благодаря опции requireAdministrator Windows всегда запускает эту программу с правами администратора.
Измените requireAdministrator на asInvoker и сохраните изменения в exe файле.
Обратите внимание, что теперь у иконки программы пропал щит UAC и вы можете запустить ее без запроса прав администратора с привилегиями текущего пользователя.
Если исполняемый файл программы подписан цифровой подпись (сертификатом Code Signing), то после модификации exe файла, он может перестать запускаться или выдавать предупреждение.
В этом случае можно заставить программу использовать внешний файл манифеста. Создайте в каталоге с ехе файлом текстовый файл
app.exe.manifest
(например Autologon.exe.manifest) и скопируйте в него код манифеста из Resource Hacker. Измените requireAdministrator на asInvoker. Сохраните файл.
Чтобы Windows при запуске приложений всегда пробовала использовать внешний файл манифеста, включите специальный параметр реестра:
REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f
Перезагрузите Windows и убедитесь, что программа использует внешний файл манифеста, и запускается без прав администратора.
Запуск программы с сохраненным паролем администратора
Если способы запуска программы через режим RunAsInvoker не работают для вашего устаревшего приложения, можно попробовать запускать такие программы в сессии пользователя с помощью сохраненного пароля администратора. Этот способ мы целенаправленно оставили последним, т.к. это наименее безопасный способ запуска программ без предоставления прав локального администратора пользователю.
Создайте на рабочем столе новый ярлык для запуска программы. Укажите имя компьютера, имя локального администратора и полный путь к исполняемому файлу программы.
Например:
runas /user:wks-1122h2\root /savecred "C:\CorpApp\myapp.exe"
Запустите ярлык под пользователем. При первом запуске откроется командная строка, в которой нужно будет указать пароль администратора.
Утилита RunAs при запуске с параметром /SAVECRED сохраняет имя пользователя и пароль в диспетчере паролей Windows (Credentials Manager).
При следующем запуске ярлыка утилита runas автоматически получит сохраненный пароль из Credentials Manager и использует его для запуска программы от имени указанного локального администратора (пароль не запрашивается повторно при каждом запуске).
Вы можете вывести список пользователей с сохраненными паролями в Credential Manager с помощью команды:
RunDll32.exe keymgr.dll,KRShowKeyMgr
В Windows 11 при запуске такого ярлыка появляется ошибка:
RUNAS ERROR: Unable to run - C:\CorpApp\myapp.exe 740: The requested operation requires elevation.
Чтобы исправить ошибку, отредактируйте команду в свойствах ярлыка. Замените ее на:
C:\Windows\System32\runas /profile /user:WKS-1122H2\root /savecred "cmd.exe /C C:\CorpApp\myapp.exe"
Как мы указывали выше, использование параметра
/savecred
не безопасно, т.к. пользователь, в чьем профиле сохранен чужой пароль может использовать его для запуска любой программы или команды под данными привилегиями, или даже сменить пароль пользователя с правами администратора. Кроме того, сохраненные пароли из Credential Manager можно получить в открытом виде с помощью утилит типа Mimikatz, лучше <запретить использование сохраненных паролей.
В Windows можно заблокировать возможность сохранения паролей в Credential Manager с помощью параметра групповой политики Network access: Do not allow storage of passwords and credentials for network authentication (Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> Security Options).
Преодолеть недостаток использования сохраненного пароля через runas позволяют несколько сторонних утилит. Например, AdmiLink, RunAsRob, RunAsSpc. Эти программы позволяют сохранить пароль администратора в зашифрованном виде и безопасно запустить программу с правами администратора. Эти утилиты проверяют при запуске путь и контрольную сумму исполняемого файла и не позволят запустить произвольную программу.
Если какая-то программа или игра требует прав администратора для установки на компьютер, а их у вас нет, иногда всё-таки можно решить проблему и выполнить установку. Есть нюансы, но не всегда критичные.
В этой инструкции подробно о способе выполнить установку программы не имея прав Администратора в Windows 11, Windows 10 и других версиях системы.
Установка программы без прав и ввода пароля учетной записи Администратора
По умолчанию, если вы без прав администратора запустите установщик программы, на значке которой изображен щит вы увидите запрос контроля учетных записей UAC и предложение ввести пароль от учётной записи администратора, как на изображении ниже.
Появление запроса можно обойти и во многих случаях это позволяет выполнить установку программы. Порядок действий, если речь идёт об однократной установке:
- Запустите командную строку, для этого в поиске на панели задач начните набирать «Командная строка» и выберите нужный результат, либо нажмите клавиши Win+R на клавиатуре, введите cmd и нажмите Enter.
- В командной строке введите команду
set __COMPAT_LAYER=RunAsInvoker
и нажмите Enter.
- Введите путь к файлу установщика и нажмите Enter (либо просто перетащите файл на окно командной строки, чтобы вставить полный путь к нему).
- Если всё прошло гладко, установка программы должна запуститься, и её можно продолжить, с учётом описанных далее нюансов.
А теперь о важных особенностях такой установки: команда, введённая на втором шаге, не даёт нам прав администратора в системе, а лишь убирает запрос контроля учетных записей.
- Главное последствие этого при установке программ описанным способом— невозможность устанавливать их в защищенные системные папки. В последних версиях Windows это, в том числе, папка Program Files, то есть придется создавать свою папку для устанавливаемых программ в расположении, где это разрешено.
- Также установщик не сможет прописать параметры в реестр «для всех пользователей», что для некоторых программ может привести к их неправильной работе, для некоторых других, как для архиватора из примера выше — невозможности прописать ассоциации файлов и добавить пункты в контекстные меню папок и файлов (хотя сама программа исправно работает).
- Удалить установленные показанным способом программы, не имея прав администратора не получится через «Программы и компоненты». Для удаления потребуется тем же методом запускать файл удаления (uninstall) из папки программы.
Если установка программ, а также запуск утилит, требующих прав администратора вам требуется регулярно, при этом прав администратора нет, вы можете создать bat-файл со следующим содержимым:
set __COMPAT_LAYER=RunAsInvoker && start "" %1
и в дальнейшем запускать такие установщики и программы простым перетаскиванием установщика на созданный файл .bat.
Как и в предыдущем способе, работоспособность не гарантирована: в случае, если для каких-то процедур программе требуются «настоящие» права администратора, выполнить их она не сможет.
Работая в Windows 10 с правами администратора, вы автоматически получаете ряд привилегий, дающих вам возможность открывать системные каталоги, устанавливать и запускать программное обеспечение, требующее у системы повышенных прав для своей работы. Если вы работаете в Windows с правами обычного пользователя, установка некоторых программ может оказаться затруднительной.
Самым лучшим решением в таком случае является, конечно же, получение этих самых прав администратора, но можно попробовать обойтись и без них.
Существует старый, но всё еще частично рабочий трюк, позволяющий обходить подобные ограничения. Не факт, что конкретно у вас это сработает, но попытаться всё же стоит.
Создайте в Блокноте или другом текстовом редакторе обычный текстовый файл и вставьте в него следующий код:
cmd /min /C «set __COMPAT_LAYER=RunAsInvoker && start «» «%1″»
Сохраните его как install.bat или с другим названием, главное, чтобы расширение было BAT или CMD.
А теперь перетащите на созданный скрипт EXE-файл приложения, которое хотите установить без прав администратора. Если всё сработает как надо, должна будет запуститься процедура установки программы.
Но остается также значительная доля вероятности, что программа всё равно запросит права администратора.
Приведенный здесь трюк вовсе не является следствием бага, это даже не лазейка, ведь оставлять подобные дыры в системе безопасности для Microsoft было непростительно. RunAsInvoker не повышает права и не позволяет обходить получение повышенных прав для запуска программного обеспечения. Параметр AsInvoker подавляет UAC и сообщает программе, что она должна запуститься с теми правами, которые имеются у пользователя на данный момент. А вот «послушается» ли программа или нет, будет зависеть от того, действительно ли ей нужны эти самые повышенные права.
Загрузка…
UAC pop-ups will be a thing of the past
by Teodor Nechita
Eager to help those in need, Teodor writes articles daily on subjects regarding Windows, Xbox, and all things tech-related. When not working, you may usually find him either… read more
Updated on
- There are users who prefer to run their apps without admin rights and not be bothered by UAC prompts.
- RunWithRestrictedRights is a great tool that allows you to open programs without admin rights.
- The guide below will show you how to use it to the full extent of its capacities.
Whenever you share a PC with someone else, and you are not the administrator, there are many drawbacks.
The first thing that comes to mind is that a lot of programs can be set up to only run while having administrator rights. This means that if you are logged in using a sub-account, you are pretty much limited in what you can do.
For example, a security program or program that manages Windows features that triggers a UAC prompt may not launch at all if you deny it.
How can I run an exe file without admin rights?
There is a free dedicated tool called RunWithRestrictedRights that you can use to run apps without admin rights.
RunWithRestrictedRights is essentially a command-line utility tool that uses the Windows Integrity Mechanism to restrict permissions for other applications. This makes it so that they don’t harm your computer.
The tool is a lightweight program that comes in a portable form and can run on Windows XP, but it can also be used on Windows Server 2003 and above.
How we test, review and rate?
We have worked for the past 6 months on building a new review system on how we produce content. Using it, we have subsequently redone most of our articles to provide actual hands-on expertise on the guides we made.
For more details you can read how we test, review, and rate at WindowsReport.
What you need to do is download RunWithRestrictedRights, which takes very little disk space, and then use it via Command Prompt to launch whatever app you want to.
By following the below-mentioned steps, the application should open with limited rights and more importantly, without any UAC pop-ups.
1. Download RunWithRestrictedRights from the official website to your PC. Be mindful of the location you choose, because you will need to know it when we get to a later step in the process.
2. Press the Windows key or click on the Start button to open the search box.
3. Type command prompt in it and right-click on the first result, then choose Run as Administrator.
4. Type in the following command line: C:RunWithRestrictedRights.exe "application"
The command itself is made out of two parts: the location of the tool’s exe file and the name of the application you want to run without admin rights.
For the first part, you will need to specify the exact location where RunWithRestrictedRights.exe is located. Moreover, you need to enter the full location of the app under quotations, as shown above.
5. Press Enter to run the command and thus launch the app.
What to do if this method did not work?
In case these steps alone did not do the trick, it means the tool needs more permissions from you in order to do its job. Basically, in order to use RunWithRestrictedRights, you need two things:
- Adjust memory quotas for a process
- Replace a process level token
You can manually allow these permissions yourself by following these steps:
- Navigate to Control Panel > Administrative Tools > Local Security Policy > User Rights Assignment.
- Here, you need to check whether the Groups box is checked and if not, manually do it yourself.
- Add the Administrators group to policies.
- Restart your PC to apply the changes and see if the tool works properly now.
Some extensive documentation on what permissions are and how do they function has been made available by Microsoft, and you can check it out.
Do you think bypassing UAC restrictions and giving more power to the common user is a good idea? Share your opinions in the comments section below.
Установка игр и приложений – это процесс, знакомый каждому владельцу ПК. Обычно инсталляция происходит через запуск EXE-файла, и вот здесь у пользователя могут возникнуть проблемы. Инсталлятор попросит выдать расширенные права, которых у текущего аккаунта может не быть. Поэтому важно понимать, как установить программу без прав администратора на операционной системе Windows 10.
Зачем обычному приложению могут понадобиться права администратора?
После первого включения компьютер предлагает владельцу создать несколько учетных записей. Главная из них обладает правами администратора, и этот пользователь может вносить любые изменения в работу ПК. Но зачем подобного рода разрешения требуются безобидной программе или игре?
Ответ на поставленный вопрос прост: расширенные полномочия требуются в том случае, если программа установлена на системный диск, где хранятся файлы ОС. В подобной ситуации обычному пользователю запрещается вносить изменения в логи и конфигурацию, а потому софт запрашивает административные права.
Как установить программу без прав администратора
Чаще всего пользователям для обхода административных прав предлагается загрузить специальное приложение. Но такие программы являются опасными для компьютера, а потому данный способ лучше сразу обойти стороной и рассмотреть альтернативные варианты, обозначенные ниже.
Выдача прав на папку с программой
Во-первых, вы можете изменить параметры безопасности для каталога, в который будете устанавливать игру или программу. Обычно речь идет о директории «Program Files». Но вы можете использовать для инсталляции и другую папку, так что действуйте аккуратно:
- Войдите в учетную запись администратора.
- Запустите проводник.
- Найдите папку «program Files».
- Кликните по ней ПКМ.
- Перейдите в «Свойства».
- Во вкладке «Безопасность» нажмите на кнопку «Изменить».
- Поставьте галочку напротив пункта «Полный доступ».
- Сохраните новые настройки.
Теперь для запуска и установки приложения через папку «Program Files» расширенные полномочия требоваться не будут. Но это не касается других каталогов, включая «Program Files (x86), в связи с чем рекомендуется еще раз проверить правильность выбора директории.
Запуск программы с учетной записи обычного пользователя
Если вы не можете получить доступ к административному аккаунту, то можете обойти ограничения через «Командную строку»:
- Щелкните ПКМ по значку «Пуск».
- Запустите КС.
- Введите запрос «runas /user:User_Name\administrator Program_Name.exe», где вместо «User_Name» будет указано название вашего профиля, а вместо «Program_Name.exe» установочный файл или файл запуска.
- Нажмите на клавишу «Enter».
Windows 10 предполагает, что пользователь без опыта не сможет воспользоваться командной строкой, а потому дает такую возможность изменения прав. Но, как вы могли убедиться, выполнить пару-тройку несложных шагов может любой владелец ПК.
Использование портативной версии программы
Наконец, помните, что существуют так называемые портативные версии программ. Это уже установленные приложения, которые можно запустить без предварительной инсталляции. Они загружаются в виде отдельной папки с распакованными файлами, необходимыми для дальнейшей работы.
На заметку. Портативные версии ПО имеют в своем названии пометку «Portable».
Попробуйте найти интересующую программу именно в таком виде и запустите ее привычным способом без помощи административного аккаунта. Просто дважды кликните ЛКМ по EXE-файлу, и прога откроется.