Запуск программ от админа без прав админа
Имеются много учётных записей объединённых в группу usersgroup с правами обычного пользователя. Им нужно запускать программы которые требуют права Администратора, но назначать их в группу Администраторов не желательно.
Как сделать так, что бы они могли запускать программы от имени администратора без прав администратора??
Программы типа runas, AdmiLink и т.п не подходят, потому что они разрешают запускать программы от имени администратора без прав под конкретной учётной записью, а мне нужно для группы учётных записей так как учёток очень много.
![]()
Понимаю что некропостинг, но больно уж чудная задачка (ставьте ударение куда хотите %) ).
По отсылке к большой группе учёток, можно допустить, что речь идет о доменных пользователях.
В принципе, в случаях, когда доменному пользователю нужны права администратора для некоторого рабочего набора программ, его проще всего поместить в группу «Локальные администраторы» конкретной рабочей станции. Таким образом, пользователь сможет навредить только своему компьютеру и почти(!) не способен навредить домену в целом.
Если такой вариант никак не подходит, то нужно внимательно изучить для чего программы требуют повышенные привилегии, возможно для этого не требуются полные административные права, а только конкретные, тогда можно подобрать более подходящую группу узкоспециализированных администраторов.
Чаще всего требование повышенных привилегий связано с записью на диск в защищаемые системой папки, вроде Program Files или корень системного диска. Обычно это касается старых программ. В таком случае можно настроить права папки в которую установлена программа, чтобы в нее могли писать обычные пользователи.
Если повышение прав связано с записью в системную ветку реестра или вызов системных функций, требующих повышенных привилегий, для которых не существует преднастроенных узкоспециализированных групп, то так просто уже не решается, и вариантов не так чтобы много.
Плохой вариант — создать BAT-файл, в котором прописать запуск от имени локального администратора. Плохой он тем, что BAT-файл это обычный текст и вы собственноручно сообщаете пользователю учетные данные локального администратора. При этом выдать права локального администратора явно — проще и более безопасно, т.к. их в нужный момент можно и отобрать.
Плохой и сложный способ — написать к каждой программе лаунчер, который будет запускать программу в отдельном процессе от имени нужного пользователя. Проблема заключается в том, что лаунчер должен каким либо способом получать данные нужной учетной записи для запуска процесса, а то это в целом не слишком отличает данный способ от BAT-файла по надежности и безопасности, зато на несколько порядков сложнее в реализации.
Неудобный вариант 1 — с помощью системного планировщика задач можно запускать указанные программы автоматически, например при логине пользователя. Да, в планировщике необходимо будет указать от чьего имени должна быть запущена программа, но эти данные не хранятся в открытом виде и получить их будет существенно сложнее (если вообще возможно, т.к. планировщик работает с системными правами и значит ему нужен только дескриптор пользователя, а его логин и пароль ему без надобности, но это только теория, глубоко не копал). Минусы данного подхода в том, что настройку нужно делать на конкретных рабочих станциях индивидуально и если пользователь закроет программу, то заново запустить ее он не сможет, для этого ему потребуется выйти из системы и зайти снова. К тому же, если мне не изменяет память, системный планировщик не умеет различать какой именно пользователь залогинился.
Неудобный вариант 2 — использовать logon-скрипты в групповой политике. С одной стороны все здорово, мы просто молча запускаем программу при логине пользователя обычным BAT-файлом и не раскрываем информацию о его содержимом (во всяком случае необходимо обладать некоторой квалификацией чтобы ее получить, а если пользователь обладает необходимой квалификацией — ему проще дать локального администратора). С другой стороны имеем часть недостатков из Неудобный вариант 1 и необходимость разместить учетки пользователей в одном OU в Active Directory, для применения групповой политики только к этим пользователям.
Установка программ без прав администратора на Windows

Для установки некоторого программного обеспечения требуется наличие прав администратора. Кроме этого и сам администратор может ставить ограничение на установку различного софта. В случае когда требуется выполнить инсталляцию, а разрешения на нее нет, предлагаем воспользоваться несколькими простыми методами, описанными ниже.
Устанавливаем программу без прав администратора
В сети интернет присутствует множество различного ПО, позволяющего обходить защиту и выполнять инсталляцию программы под видом обычного пользователя. Мы не рекомендуем их использовать особенно на рабочих компьютерах, так как это может нести за собой серьезные последствия. Мы же представим безопасные способы установки. Давайте рассмотрим их подробнее.
Способ 1: Выдача прав на папку с программой
Чаще всего права администратора софту требуются в том случае, когда будут проводиться действия с файлами в своей папке, например, на системном разделе жесткого диска. Владелец может предоставить полные права другим юзерам на определенные папки, что позволит выполнять дальнейшую установку под логином обычного пользователя. Делается это следующим образом:
-
Войдите в систему через учетную запись администратора. Подробнее о том, как это сделать в Виндовс 7 читайте в нашей статье по ссылке ниже.




Теперь во время установки программы вам потребуется указать папку, к которой предоставили полный доступ, и весь процесс должен пройти успешно.
Способ 2: Запуск программы с учетной записи обычного пользователя
В тех случаях когда нет возможности попросить администратора предоставить права доступа, рекомендуем воспользоваться встроенным в Windows решением. С помощью утилиты через командную строку осуществляются все действия. От вас требуется только следовать инструкции:
-
Откройте «Выполнить» нажатием горячей клавиши Win + R. Введите в строку поиска cmd и нажмите «ОК»

runas /user:User_Name\administrator Program_Name.exe

Способ 3: Использование портативной версии программы
Некоторое ПО имеет портативную версию, не требующую установки. Вам будет достаточно скачать ее с официального сайта разработчика и запустить. Выполнить это можно очень просто:
- Перейдите на официальный сайт необходимой программы и откройте страницу загрузки.
- Начните загрузку файла с подписью «Portable».


Вы можете перекинуть файл софта на любое съемное устройство хранения информации и запускать его на разных компьютерах без прав администратора.
Сегодня мы рассмотрели несколько простых способов как установить и использовать различные программы без прав администратора. Все они не сложные, но требуют выполнения определенных действий. Мы же рекомендуем для установки софта просто войти в систему с учетной записи администратора, если это доступно. Подробнее об этом читайте в нашей статье по ссылке ниже.
Мы рады, что смогли помочь Вам в решении проблемы.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Запуск программы без прав администратора и подавлением запроса UAC
18.03.2021
itpro
Windows 10, Windows Server 2016
комментария 52
Многие программы при запуске требуют повышения прав (значок щита у иконки), однако на самом деле для их нормальной работы права администратора не требуется (например, вы можете вручную предоставить необходимые права пользователям на каталог программы в ProgramFiles и ветки реестра, которые используются программой). Соответственно, если на компьютере включен контроль учетных записей, то при запуске такой программы из-под непривилегированного пользователя появится запрос UAC и Windows потребует от пользователя ввести пароль администратора. Чтобы обойти этот механизм многие просто отключают UAC или предоставляют пользователю права администратора на компьютере, добавляя его в группу локальных администраторов. Microsoft не рекомендует использовать такие методы, т.к. это снижает безопасность компьютера.
Зачем обычному приложению могут понадобится права администратора?
Права администратора могут потребоваться программе для модификации некоторых файлов (логи, файлы конфигурации и т.д.) в собственной папке в C:\Program Files (x86)\SomeApp). По умолчанию у пользователей нет прав на редактирование данного каталога, соответственно, для нормальной работы такой программы нужны права администратора. Чтобы решить эту проблему, нужно войти на компьютер под администратором и вручную предоставить пользователю (или встроенной группе Users) права на изменение/запись для этого каталога на уровне файловой системы NTFS.

Запуск программы, требующей права администратора, от обычного пользователя
Ранее мы уже описывали, как можно с помощью параметра RunAsInvoker отключить запрос UAC для конкретной программы. Однако этот метод недостаточно гибкий.
Также можно воспользоваться RunAs с сохранением пароля админа /SAVECRED в диспетчере паролей Windows (Credentials Manager). Это также небезопасно, т.к. пользователь может использовать сохранённый пароль учетной записи администратора для запуска других программ.
Рассмотрим более простой способ принудительного запуска любой программы без прав администратора (и без ввода пароля админа) при включенном 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 10 запустился непривилегированный процесс 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 файлу (понадобятся права администратора).

После этого для запуска любого приложения без прав админа достаточно выбрать пункт “Run as user without UAC elevation” в контекстном меню проводника Windows File Explorer.

RunAsInvoker в переменной окружения __COMPAT_LAYER
Переменная окружения __COMPAT_LAYER позволяет устанавливать различные уровни совместимости для приложений (вкладка Совместимость в свойствах exe файла). С помощью этой переменной можно указать настройки совместимости, с которыми нужно запускать программу. Например, для запуска приложения в режиме совместимости с Windows 7 и разрешением 640×480, установите:
set __COMPAT_LAYER=Win7RTM 640×480

Из интересных нам опций переменной __COMPAT_LAYER можно выделить следующие параметры:
- RunAsInvoker — запуск приложения с привилегиями родительского процесса без запроса UAC;
- RunAsHighest — запуск приложения с максимальными правами, доступными пользователю (запрос UAC появляется если у пользователя есть права администратора);
- RunAsAdmin — запуск приложение с правами администратора (запрос AUC появляется всегда).
Следующий код включает режим RUNASINVOKER для текущего процесса и запускает указанную программу:
start «» «C:\Program Files\MyApp\testapp.exe»
Включаем режим RunAsInvoker через манифест exe файла программы
Как мы уже говорили выше, Windows 10 показывает значок щита UAC у программ, которые для запуска требуют повышение привилегий. Это требование разработчики задают при разработке в специальной секции программы — манифесте.
Вы можете отредактировать манифест exe файла программы и отключить требование запускать программу в привилегированном режиме.
Для редактирования манифеста программы можно использовать бесплатную утилиту Resource Hacker. Откройте исполняемый файл программы в Resource Hacker.
В дереве слева перейдите в раздел Manifest и откройте манифест программы.
Обратите внимание на строки:
Именно благодаря опции requireAdministrator Windows всегда запускает эту программу с правами администратора.
Измените requireAdministrator на asInvoker и сохраните изменения в exe файле.

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

В этом случае можно заставить программу использовать внешний файл манифеста. Создайте в каталоге с ехе файлом текстовый файл 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 и убедитесь, что программа использует внешний файл манифеста, в котором указано, что нужно запускаться без прав администратора.