Запуск программы требующий права администратора под учетной записью обычного пользователя
В любом предприятии, в котором компьютеры/программное обеспечение обслуживают адекватные люди, обычные пользователи компьютеров не имеют никаких админских прав за ними, что значительно снижает риск удаления важных файлов системы, установку непонятного программного обеспечения и прочих чудес. Однако, некоторые программы упорно не желают работать без прав администратора — и что же делать, если желания давать права администратора компьютера пользователю нет, а необходимость запустить приложение — есть?
Выдача прав на директорию с программой
Часто, права администратора требуются программе для проведения каких-либо операций с файлами в своей папке — например некой Programm‘e нужно записывать данные в свой файл конфигурации в папку, куда она установлена (допустим этот каталог «C:\Program Files (x86)\Programma«). Можно попробовать выдать нужным пользователям полные права на эту папку. Делается это следующим образом:
- Правой кнопкой нажимаете на папке, открываете Свойства
- В Свойствах нужно открыть вкладку Безопасность.
- В зависимости от настроек компьютера там может отображаться либо «Добавить«, либо «Изменить«. В первом случае нужно нажать кнопку «Добавить«, во втором — «Изменить«, после чего скорее всего потребуется ввести данные учетной записи администратора. После этого появится окно с кнопкой «Добавить«, которую и нужно будет нажать.
- После нажатия кнопки «Добавить» добавляем всех нужных пользователей. Для проверки правильность ввода имени пользователя можно воспользоваться кнопкой «Проверить имена«.
- Затем выдаем полные права добавленному пользователю — для этого нужно поставить галочку в поле «Разрешения для. «, пункт «Полные права«.
Запуск программы под учетной записью админстратора с учетной записи обычного пользователя
Для этой цели сгодится программа RunAs, которая идет в составе Windows. Для удобства её использования проще всего будет создать cmd файл, в который следует поместить следующее:
Вместо Домена пользователя и Пользователя вводим данные учетной записи пользователя, который обладает правами администратора в домене, или на компьютере (в таком случае, вместо Домена пользователя следует писать имя компьютера). Вместо Путь к программе соответственно пишем путь к нужному exe файлу.
Сохраняем этот файл, и запускаем. Если все прошло верно, то при первом запуске bat файла, будет запрошен пароль для указанного пользователя, однако уже при повторном запуске никакого запроса пароля не потребуется — для этого используется параметр /SAVECRED. Однако, в таком случае, программа будет запущена не от имени пользователя, который запустил данный файл, а от имени пользователя, чьи данные были указаны параметром /user, что является весьма сомнительным методом, с точки зрения безопасности.
Была ли эта статья Вам полезна?
Комментарии к статье (12)
-
- Аноним
- 26.01.2022 09:00
Дак в том и суть, что без пароля учетки админа все ваши способы бесполезны, умники, с паролем то бы и не пришлось тут быть. Короч ничего умного и нового не сказали
- Ответить
-
- AJIekceu4
- 02.02.2022 21:09
Так эта статья и не ставит своей целью ответить на вопрос, как можно обойти защиту Windows. Об этом написано во втором абзаце статьи и специально выделено рамкой и жирным текстом, чтобы читатель не тратил свое время.
- Ответить
- Гость
- 11.10.2020 08:35
мне нужен был запуск без использования уч. записи админа
- Ответить
-
- Recluse
- 11.10.2020 09:54
Здесь описан как минимум один способ, что нужно для этого сделать. Если же у Вас какая-то специфическая информация, то нужно написать менее скудный на информацию комментарий, для того, чтобы кто-то помог решить проблему.
- Ответить
- Исаак
- 11.09.2020 13:02
Здравствуйте,Админ и Сообщество! Снимаю с Вас заботу отвечать-сегодня возобновилась функция временного отключения TS,само-по себе,как и исчезало, и я в ликовании.Спасибо,что выслушали,Исаак.
- Ответить
- Исаак
- 11.09.2020 00:11
Уважаемый Админ! Моя уч.локальная запись Имя+Администратор+Защищена паролем.На примере проги 360 TS,где раньше отключение на время шло без проблем,вдруг стало приходить сообщение»Для запуска этой функции требуются права администратора» и отключение стало невозможным.Как же так,я ведь и есть администратор,не так ли?Пробовал добраться до рекомендованного снятия галки с «отключить уч. записи» в Лок.политике безопасности,так в моей 2004 версии W10 нет в Упр.компьютером этой опции Лок. группы-Администратор.Ну прямо за чем погонишься,на то и напоришься,обновился в июле,и-на тебе!
Из почерпнутых из инета сведений узнал,что рекомендованные действия не работают в W10 Home (командная строка с командой active:yes),а у меня именно такая.Попробовал,и никаких изменений, отключить TS нельзя.А ведь раньше это работало,что же случилось?И как поправить?Пожалуйста,вместе с Сообществом посоветуйте,а то ведь полное неудобство с невозможностью часто требуемых отключений.С почтением,86-летний юзер Исаак.- Ответить
- зумзум
- 26.09.2018 15:27
/SAVECRED работает только в ос не выше vist’ы , yна 7-10 такое не прокатит.
- Ответить
-
- Recluse
- 26.09.2018 16:03
Лично сделал bat файл в Windows 7, использующий ключ /SAVECRED — и все работает.
- Ответить
-
- Айрат
- 30.10.2018 08:24
Зависит от программы. Консоль управления компом — без проблем. Программы и компоненты — не запустится.
- Ответить
-
- Recluse
- 31.10.2018 14:10
Почему просто пользователю не дать права администратора, если вы хотите дать ему доступ к установке и удалению программ?
- Ответить
- Андрей
- 10.10.2018 11:16
Только что попробовал в Windows 10 Pro — тоже все в порядке.
- Ответить
- Аноним
- 25.07.2018 14:17
Еть программа RunAsTool. Она запускает выбранные программы из под любой учётки с правами администратора. Настройка программы и указание приложений, которые будут запускаться с правами админа, доступны только после ввода администраторского пароля.
Программа требует права администратора для запуска — что это значит?
Иногда при запуске программ или при попытке воспользоваться какой-либо ее функцией на экране отображается ошибка о необходимости предоставления ей (программе) прав администратора. Обычно это означает, что запускаемое приложение или ее отдельная функция пытается:
- Считать значения или внести изменения в критические настройки/параметры операционной системы, например — добавление/удаление записей в реестре или создание новых задач в «Планировщике заданий»;
- Получить доступ к каким-либо данным на диске, доступ к которым запрещен для учетных записей, не имеющих статус администраторских.
- Принудительно завершить работу какого-либо запущенного процесса, остановить или внести изменения в параметры запуска системной службы.
- Запустить системное приложение или службу, для запуска/работы которых также требуются права администратора.
В всех случаях (без учета различных нюансов) доступ блокируется либо со стороны самой системы, либо со стороны администратора компьютера, т.е. владельца администраторской учетной записи. Решить проблему можно двумя способами:
- Если доступ блокируется операционной системой, а учетная запись пользователя имеет статус администраторской, то программу следует запускать от имени администратора (дело в том, что некоторые приложения в целях безопасности не запускаются от имени администратора даже из-под учетной записи такового).
- Запустить программу от имени другого пользователя компьютера, учетная запись которого имеет статус администраторской. Сработает только в том случае, если администратор предоставит пароль от своей учетной записи.
Рассмотрим все на примере Windows 11.
Запуск программ от имени администратора
Здесь все очень просто:
- Кликните по запускаемой программе или ее ярлыку на рабочем столе правой кнопкой мыши, затем выберите в контекстном меню пункт «Показать дополнительные параметры»:
- Откроется расширенное контекстное меню — выберите в нем пункт «Запуск от имени администратора»:
- Готово.
Чтобы постоянно не проделывать вышеописанные действия, можно указать системе всегда запускать программу от имени администратора. Для этого:
- Откройте окно свойств запускаемой программы, выбрав в контекстном меню пункт «Свойства» либо нажав комбинацию клавиш «Alt + Enter» после выделения значка/ярлыка приложения мышкой.
- В окне свойств откройте вкладку «Совместимость», затем установите галочку напротив элемента «Запускать программу от имени администратора» и нажмите «ОК»:
Запуск программы от имени другого пользователя
Как отмечалось выше, данный способ сработает в случае, если известно имя и пароль от учетной записи администратора компьютера. Действия следующие:
[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет
К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.
Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…
Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.
Ну, и зачем тебе права?
Программа может запрашивать права администратора условно в двух случаях:
- Когда хочет получить доступ туда, куда «простым смертным» нельзя: например, создавать файлы в системных каталогах.
- Когда программу скомпилировали со специальным флагом «Требовать права администратора».
С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:
Куда это лезет этот 7Zip?
И по результатам исследования выдаем права пользователю на нужный каталог или ветку реестра.
https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8Сложнее, если случай клинический, и так просто выдать права не получится: например, программа требует сильного вмешательства в работу системы вроде установки драйверов. Тогда придется придумывать всякий колхоз, про который речь пойдет в последнем разделе статьи. Пока подробнее освещу второй случай — когда стоит флажок.
Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:
- asInvoker. Программа запускается с теми же правами, что и породивший ее процесс (как правило, это explorer.exe c правами пользователя);
- highestAvailable. Программа попросит максимально доступные пользователю права (у администратора появится окно с запросом повышения UAC, у пользователя — нет);
- requireAdministrator. Программа будет требовать права администратора в любом случае.
Если разработчик твердо решил требовать права администратора, даже если они не нужны, то обойти это можно малой кровью.
Нет, не будет тебе прав
В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.
Простейшим вариантом работы с этим механизмом будет использование переменных среды.
Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:
Запрос повышение прав.
Если же мы запустим редактор реестра из консоли, предварительно поменяв значение переменной среды __COMPAT_LAYER на:
То запроса UAC не будет, как и административных прав у приложения:
Бесправный редактор реестра.
Этим можно пользоваться, запуская программы батниками или добавляя контекстное меню через реестр. Подробнее читайте в материале How to Run Program without Admin Privileges and to Bypass UAC Prompt?
С конкретным примером такой неприятной программы можно столкнуться при загрузке классификаторов банков из 1С с сайта РБК по ссылке http://cbrates.rbc.ru/bnk/bnk.exe. Если обновление классификаторов отдается на откуп самим пользователям и нет возможности поменять загрузку на bnk.zip (а современные 1С это поддерживают), то приходится придумывать костыли. Ведь bnk.exe — самораспаковывающийся архив, в котором зачем-то прописано «Требовать права администратора».
Поскольку ярлычками тут обойтись не выйдет, ведь 1С сама скачивает файл и запускает его, то придется применять тяжелую артиллерию — Microsoft Application Compatibility Toolkit.
Документация к ПО, как обычно, доступна на официальном сайте, загрузить можно как часть Windows Assessment and Deployment Kit. Сам процесс решения проблемы несложен.
Необходимо поставить утилиту, запустить Compatibility Administrator и создать Application Fix в новой или имеющейся базе данных:
Создаем исправление приложения.
Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).
Далее необходимо в списке исправлений выбрать RunAsInvoker.
Выбираем нужный фикс.
Все остальное оставляем по умолчанию, сохраняем базу данных. Должно получиться примерно так:
Созданный фикс для bnk.exe.
После этого достаточно будет установить базу данных, щелкнув по ней правой кнопкой и выбрав Install. Теперь пользователи смогут сами грузить классификаторы банков.
Все становится хуже, если приложению действительно нужны права админа. Тогда добавление прав на системные объекты и исправления не помогают.
Ну ладно, держи права
Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.
Ну, посмотрим, что из этого выйдет.
Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.
)
Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.
Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.
Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».
Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:
Затем сохранить пароль в зашифрованном виде в файл:
И теперь использовать этот файл для неинтерактивной работы:
К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:
Теперь при помощи этого ключа пароль можно зашифровать:
К сожалению, с безопасностью дела обстоят так же печально: утащить пароль не составляет трудностей, если есть доступ к файлу с ключом шифрования и зашифрованным паролем. Да, можно добавить обфускации и скомпилировать скрипт в .exe вместе с нужными файлами. Но нужно понимать, что это — полумеры.
Другим интересным вариантом может быть применение назначенных заданий — если создать назначенное задание от админского аккаунта, пользователю для работы будет достаточно его запуска. К сожалению, для интерактивной работы с приложением это решение не подходит.
На свете существует несколько сторонних решений, призванных решить задачу. Остановлюсь на парочке из них.
Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.
Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).
Основное окно программы.
Помимо непосредственно создания ярлыка (и да, запрос UAC тоже можно подавлять), есть и дополнительные функции вроде калькулятора, терминала и удобных настроек политик безопасности. Со всеми возможностями программы читателю предлагается разобраться самостоятельно.
Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.
На первый взгляд все выглядит безопасно, но, к сожалению, код программ закрыт, и насколько можно доверять разработчику — вопрос.
Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.
В целом, решение проверено годами и поколениями отечественных системных администраторов. Но добавлю и альтернативу из-за рубежа.
RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.
Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.
Основное окно программы.
Программа богато документирована на официальном сайте.
У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.
Мне остается только добавить, что это ПО бесплатно только для личного использования.
Но учтите, что из программы, запущенной под административными правами, можно натворить бед. Например, запустить привилегированную командную консоль через диалог Файл — Открыть.
Запускаем cmd.exe прямо из редактора реестра.
Немного защититься помогут политики запрета контекстного меню и прочих диспетчеров задач, часть из которых может настроить AdmiLink. Но в любом случае следует быть осторожным.
А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.