Запуск программы требующий права администратора под учетной записью обычного пользователя

Kak-ustanovit-programmu-bez-prav-administratora.png

Устанавливаем программу без прав администратора

В сети интернет присутствует множество различного ПО, позволяющего обходить защиту и выполнять инсталляцию программы под видом обычного пользователя. Мы не рекомендуем их использовать особенно на рабочих компьютерах, так как это может нести за собой серьезные последствия. Мы же представим безопасные способы установки. Давайте рассмотрим их подробнее.

Способ 1: Выдача прав на папку с программой

Чаще всего права администратора софту требуются в том случае, когда будут проводиться действия с файлами в своей папке, например, на системном разделе жесткого диска. Владелец может предоставить полные права другим юзерам на определенные папки, что позволит выполнять дальнейшую установку под логином обычного пользователя. Делается это следующим образом:

  1. Войдите в систему через учетную запись администратора. Подробнее о том, как это сделать в Виндовс 7 читайте в нашей статье по ссылке ниже.

Подробнее: Как получить права администратора в Windows 7

Перейдите к папке, в которую в дальнейшем будут устанавливаться все программы. Нажмите на нее правой кнопкой мыши и выберите «Свойства».</li>

Svoystva-papki-Windows-7.png

Откройте вкладку «Безопасность» и под списком нажмите на «Изменить».</li>Левой кнопкой мыши выберите необходимую группу или пользователя для предоставления прав. Поставьте галочку «Разрешить» напротив строки «Полный доступ». Примените изменения, нажав на соответствующую кнопку.</li></ol>

Теперь во время установки программы вам потребуется указать папку, к которой предоставили полный доступ, и весь процесс должен пройти успешно.

Способ 2: Запуск программы с учетной записи обычного пользователя

В тех случаях когда нет возможности попросить администратора предоставить права доступа, рекомендуем воспользоваться встроенным в Windows решением. С помощью утилиты через командную строку осуществляются все действия. От вас требуется только следовать инструкции:

  1. Откройте «Выполнить» нажатием горячей клавиши Win + R. Введите в строку поиска cmd и нажмите «ОК»
  2. В открывшемся окне введите команду, описанную ниже, где User_Name – имя пользователя, а Program_Name – название необходимой программы, и нажмите Enter.

runas /user:User_Nameadministrator Program_Name.exe

Иногда может потребоваться ввод пароля учетной записи. Напишите его и нажмите Enter, после чего останется только дождаться запуска файла и выполнить установку.</li></ol>

Способ 3: Использование портативной версии программы

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

  1. Перейдите на официальный сайт необходимой программы и откройте страницу загрузки.
  2. Начните загрузку файла с подписью «Portable».
  3. Откройте скачанный файл через папку загрузок или сразу из браузера.

Вы можете перекинуть файл софта на любое съемное устройство хранения информации и запускать его на разных компьютерах без прав администратора.

Сегодня мы рассмотрели несколько простых способов как установить и использовать различные программы без прав администратора. Все они не сложные, но требуют выполнения определенных действий. Мы же рекомендуем для установки софта просто войти в систему с учетной записи администратора, если это доступно. Подробнее об этом читайте в нашей статье по ссылке ниже.

Читайте также: Используем учетную запись Администратора в WindowsМы рады, что смогли помочь Вам в решении проблемы.Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Когда ты приходишь на работу и обнаруживаешь, что на компьютере что-то запрещено, а в Сети — заблокировано, это воспринимается практически как вызов. В своей статье я расскажу, какие бывают методы ограничений и как с ними бороться. Многие из описанных трюков мне приходилось проделывать самостоятельно — конечно же, исключительно с благими намерениями.

Понятно, что ограничения важны для безопасности и снижения нагрузки на эникейщиков, но обычно уровень технической подготовки у сотрудников разный, а правила одни на всех. Если ты чувствуешь, что ограничения мешают работе и личной свободе, а также здраво оцениваешь последствия, то у тебя есть все шансы собственноручно улучшить условия.

WARNING

Нарушение политики безопасности может повлечь административную и уголовную ответственность в зависимости от соотношения твоей наглости и удачливости. Редакция и автор не несут ответственности за любой возможный вред.

В чужой монастырь со своей флешкой

Получение нужных прав на рабочем компьютере в общем случае начинается с загрузки другой ОС с набором «хакерских» утилит. Мы уже писали о том, как создать мультизагрузочную флешку, а сейчас пройдемся по важным деталям.

Бывает, что загрузиться с проверенной флешки или Live CD очень непросто даже при наличии физического доступа к компьютеру. Загрузка с произвольного носителя не представляла проблем до появления EFI. Просто входишь в настройки BIOS и меняешь порядок загрузки в разделе Boot. На одних компах для этого надо было нажать Delete, на других F2 — в любом случае нужная клавиша указывалась на экране или в мануале. Сейчас же в UEFI используется список доверенных загрузчиков и два разных режима стартовой последовательности, а загрузка Windows 8, 8.1 и 10 для ускорения может происходить прямо из EFI безо всяких предложений войти в настройки.

Если ты сразу видишь загрузку Windows и не успеваешь ничего сделать, то дождись ее запуска и выполни одно из следующих действий:

  1. Нажми «перезагрузить» на экране приветствия Windows, удерживая левую клавишу Shift.
  2. Уже после загрузки зайди в «Параметры → Обновление и безопасность → Восстановление → Особые варианты загрузки». Нажми «Перезагрузить сейчас → Поиск и устранение неисправностей → Дополнительные параметры → Параметры загрузки».
  3. Как вариант — можешь ввести shutdown.exe /R /O в командной строке.

Независимо от выбранного способа произойдет перезагрузка с выбором параметров, и ты сможешь оказаться в настройках BIOS/UEFI.

Если права жестко ограничены и войти в настройки Windows 10 софтовым методом невозможно, можешь попробовать физически отключить HDD/SSD. Тогда при следующей загрузке появится сообщение об ошибке и отобразится пункт для входа в UEFI.

Может показаться, что отключить питание HDD на рабочем компьютере сложно, особенно если корпус опечатан. Просто нажми на пластиковую заглушку слота 5,25″, которая обычно располагается на фронтальной панели. Чуть сильнее. Я сказал: «чуть»! Чувствуешь, как прогибается? Продавив ее миллиметра на три, попробуй ухватить край и вытащить заглушку. В образовавшееся отверстие спокойно пролезает рука до середины предплечья, даже если ты регулярно ходишь в качалку. Через эту амбразуру при должной ловкости можно не только кабель отключить, но и почти весь комп перебрать. Метод напоминает ремонт двигателя через выхлопную трубу, но действует в реальной жизни. Исключение составляют нестандартные корпуса — например, полностью алюминиевые.

Быстрая загрузка с флешки

Так или иначе, ты попадаешь в настройки BIOS. С большой вероятностью для загрузки с флешки также придется изменить параметр Boot List Option. По умолчанию он обычно стоит в новом режиме UEFI, а на флешке используется GRUB с запуском через MBR. Поэтому нам нужен либо старый режим Legacy/CSM, либо оба, но с приоритетом классического: Legacy/CSM + UEFI. Иногда этот пункт отсутствует в списке. Тогда поддержку Legacy придется предварительно активировать на другой вкладке. Обычно этот пункт называется Load Legacy Option Rom. Там же отключается защищенный метод загрузки Secure Boot. При желании можно не отключать его, а добавить собственные ключи доверенных загрузчиков, но описание этого метода выходит за рамки статьи.

Другим препятствием может стать парольная защита BIOS/UEFI. Напоминаю, что пароль обычно записан с обратной стороны батарейки на материнской плате. Просто вытащи ее и переверни. Как не видишь пароля? Странно… Ладно, вставляй обратно. Пока ты крутил батарейку, он испарился вместе с другими данными CMOS. Если ветеринарные методы компьютерных операций тебе чужды или открыть корпус проблематично (например, он стоит у всех на виду), то попробуй ввести инженерный пароль. Он гуглится по производителю BIOS и общий у всех материнских плат одной серии.

Другой способ софтового сброса пароля на вход в BIOS — вызвать ошибку в контрольной сумме блоков данных. Для этого есть утилита Кристофа Гренье CmosPwd. Она прямо из Windows делает запись в CMOS. Метод не сработает, если утилиту заблокирует антивирус или если перезапись CMOS была предварительно отключена на низком уровне.

INFO

На некоторых ноутбуках, ультрабуках и неттопах временное обесточивание CMOS не приводит к сбрасыванию пароля входа в BIOS/UEFI, поскольку он хранится в отдельной микросхеме энергонезависимой памяти. В таких случаях можно восстановить пароль по коду ошибки. Этот код отображается после трехкратного ввода неправильного пароля и представляет собой хеш от сохраненного пароля. Поскольку хеш-функции необратимы, то вычислить пароль напрямую нельзя. Однако существуют программы, подбирающие пароль с таким же значением свертки. Это может быть как заданный пароль, так и другая комбинация символов, дающая такой же хеш при проверке. Зайти в настройки можно по любому из них, так как проверяется именно хеш. Обрати внимание, что на некоторых ноутбуках Dell при вводе пароля надо нажимать Ctrl + Enter. Если ничего не помогло, то остается воспользоваться паяльником и программатором, но это уже хардкор для инженеров сервис-центров.

Открываем доступ к диску

Итак, предположим, что мы успешно загрузились с флешки и готовы к подвигам. С чего начнем? Первое ограничение, с которым сталкивается обычный пользователь, — отсутствие прав чтения и записи в определенных каталогах. Свободно использовать он может только домашнюю папку, что не слишком удобно.

Такие ограничения заданы на уровне списков управления доступом в файловой системе NTFS, но сверяться с ними обязана только сама винда. Другие ОС и отдельные утилиты способны игнорировать эти ограничения. Например, Linux и программы для восстановления данных не используют WinAPI, а обращаются к диску либо через свои драйверы, либо напрямую. Поэтому они просто не видят выставленные в NTFS атрибуты безопасности и читают все подряд.

Сделать копию любых данных ты можешь уже на этом этапе. Единственное возможное препятствие — шифрование разделов. Встроенную защиту BitLocker помогут преодолеть утилиты ElcomSoft (кстати говоря, как и многие другие виртуальные заборы), а вот TrueCrypt, VeraCrypt и другие серьезные криптографические контейнеры придется вскрывать иначе. Проще всего делать это методами социального инжиниринга, поскольку техническая защита у этих средств на порядок выше, чем психологическая у владельца, — см. реальные примеры из жизни.

Заменить права доступа тоже несложно. Загрузившись с флешки, ты становишься админом в той же Windows PE и делаешь с диском что хочешь. Однако интереснее сохранить права в основной системе, для чего надо стать админом именно в ней. Для этого удобнее всего воспользоваться одной из утилит для сброса паролей. Например, простейшая программа NT Password Edit Вадима Дружина была написана более десяти лет назад, но актуальна до сих пор. С ее помощью можно удалить или задать новый пароль любой учетной записи Windows.

NT Password Edit

Другие статьи в выпуске:

Xakep #212. Секреты даркнета

(с) Вася Ложкин.

К сожалению, в работе сисадмина нет-нет да и приходится разрешать пользователям запускать всякий софт с админскими правами. Чаще всего это какие-нибудь странные китайские программы для работы с оборудованием. Но бывают и другие ситуации вроде небезызвестного bnk.exe.

Выдавать пользователю права администратора, чтобы решить проблему быстро и просто, противоречит нормам инфобезопасности. Можно, конечно, дать ему отдельный компьютер и поместить в изолированную сеть, но — это дорого и вообще…

Попробуем разобрать решения, которые позволят и программу запустить, и безопасника с финансистом не обозлить.

Программа может запрашивать права администратора условно в двух случаях:

  1. Когда хочет получить доступ туда, куда «простым смертным» нельзя: например, создавать файлы в системных каталогах.
  2. Когда программу скомпилировали со специальным флагом «Требовать права администратора».

С первым случаем все понятно: берем в руки замечательную программу Марка Руссиновича Process Monitor, смотрим, что происходит, и куда программа пытается залезть:

Куда это лезет этот 7Zip?

И по результатам исследования выдаем права пользователю на нужный каталог или ветку реестра.

Сложнее, если случай клинический, и так просто выдать права не получится: например, программа требует сильного вмешательства в работу системы вроде установки драйверов. Тогда придется придумывать всякий колхоз, про который речь пойдет в последнем разделе статьи. Пока подробнее освещу второй случай — когда стоит флажок.

Если сильно упростить, то в специальном манифесте программы (к слову, установщики — это тоже программы) могут быть три варианта запуска:

  • asInvoker. Программа запускается с теми же правами, что и породивший ее процесс (как правило, это explorer.exe c правами пользователя);
  • highestAvailable. Программа попросит максимально доступные пользователю права (у администратора появится окно с запросом повышения UAC, у пользователя — нет);
  • requireAdministrator. Программа будет требовать права администратора в любом случае.

Если разработчик твердо решил требовать права администратора, даже если они не нужны, то обойти это можно малой кровью.

В системе Windows, начиная с Vista, появилась служба UAC, которая помимо прочего отвечает за запросы программ на повышение прав. Не все программы «переваривали» работу с этой службой. Поэтому в системе был доработан механизм совместимости приложений, позволяющий прямо задать программе ее поведение — запрашивать права или нет.

Простейшим вариантом работы с этим механизмом будет использование переменных среды.

Рассмотрим пример с редактором реестра. Действительно, запуская regedit.exe под администратором, мы получаем запрос на повышение прав:

Запрос повышение прав.

Если же мы запустим редактор реестра из консоли, предварительно поменяв значение переменной среды __COMPAT_LAYER на:

set __COMPAT_LAYER=RUNASINVOKER 

То запроса 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 /savecred /user:Администратор "C:Program Files7-Zip7zFM.exe"  

Действительно, RunAs запустит 7zip с правами учетной записи «Администратор», спросит пароль и запомнит его. Потом ярлык с такой строкой запуска будет запускать 7zip под Администратором без вопросов.

)

Вводим пароль.

Есть один существенный недостаток: пароль запоминается на уровне системы, и теперь, используя команду Runas, можно будет запускать абсолютно любую программу. Это мало чем отличается от прямого предоставления админских прав сотрудникам, так что использовать это решение не стоит.

Зато runas может быть полезен, когда сотрудник знает пароль администратора, но работает под ограниченной учетной записью (по идее так должен делать каждый системный администратор).

Если мы начали с консольных команд, то перейдем к более высокоуровневым скриптам. Интересное решение было предложено в статье «Планктонная Windows», где упомянутый выше Runas обвязывался js-скриптом и пропускался через обфускатор. У решения есть и очевидный минус — скрипт можно раскодировать.

Чуть более интересным методом в 2к20 являются возможности PowerShell и его работа с паролями. Подробнее можно почитать в материале «Защита и шифрование паролей в скриптах PowerShell».

Если вкратце: в PS работа с паролями производится через специальный тип данных SecureString и объект PSCredential. Например, можно ввести пароль интерактивно:

$Cred = Get-Credential 

Затем сохранить пароль в зашифрованном виде в файл:

$Cred.Password | ConvertFrom-SecureString | Set-Content c:pass.txt 

И теперь использовать этот файл для неинтерактивной работы:

$username = "DomainАдминистратор"  $pass = Get-Content C:pass.txt | ConvertTo-SecureString  $creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $username, $pass 

К сожалению, файл этот можно использовать только на том ПК, на котором его создали. Чтобы этого избежать, можно сделать отдельный ключ шифрования. Например так:

$AESKey = New-Object Byte[] 32  [Security.Cryptography.RNGCryptoServiceProvider]::Create().GetBytes($AESKey)  $AESKey | out-file C:password_aes.key 

Теперь при помощи этого ключа пароль можно зашифровать:

$Cred.Password| ConvertFrom-SecureString -Key (get-content C:password_aes.key  )| Set-Content C:pass.txt 

И расшифровать:

$pass = Get-Content C:pass.txt | ConvertTo-SecureString -Key (get-content C:password_aes.key) 

К сожалению, с безопасностью дела обстоят так же печально: утащить пароль не составляет трудностей, если есть доступ к файлу с ключом шифрования и зашифрованным паролем. Да, можно добавить обфускации и скомпилировать скрипт в .exe вместе с нужными файлами. Но нужно понимать, что это — полумеры.

В свое время я использовал для решения подобных задач свой любимый AutoIt, где компилировал скрипт с командой RunAs и радовался… До тех пор, пока не узнал, что AutoIt (особенно старых версий) декомпилируется на раз-два.

Другим интересным вариантом может быть применение назначенных заданий — если создать назначенное задание от админского аккаунта, пользователю для работы будет достаточно его запуска. К сожалению, для интерактивной работы с приложением это решение не подходит.

На свете существует несколько сторонних решений, призванных решить задачу. Остановлюсь на парочке из них.

Пожалуй, одна из самых известных утилит — это AdmiLink, разработанная Алексеем Курякиным для нужд ядерной физики. Программа и принципы ее работы описаны на официальном сайте. Я, как обычно, позволю себе более краткое описание.

Программа состоит из трех модулей. AdmiLink — это графическое окно, где можно создать ярлык на нужное приложение (в принципе, в ряде случаев достаточно только его).

Основное окно программы.

Помимо непосредственно создания ярлыка (и да, запрос UAC тоже можно подавлять), есть и дополнительные функции вроде калькулятора, терминала и удобных настроек политик безопасности. Со всеми возможностями программы читателю предлагается разобраться самостоятельно.

Второй модуль называется AdmiRun и представляет из себя консольную утилиту. Она умеет запускать приложения от имени администратора, получив в качестве одного из параметров строку, созданную через AdmiLink. В строке шифруется имя пользователя и пароль, при этом участвует и путь к программе.

На первый взгляд все выглядит безопасно, но, к сожалению, код программ закрыт, и насколько можно доверять разработчику — вопрос.

Третий модуль — AdmiLaunch — отвечает за запуск окон в разных режимах, и он используется для запуска AdmiRun, если создавать ярлык через AdmiLink.

В целом, решение проверено годами и поколениями отечественных системных администраторов. Но добавлю и альтернативу из-за рубежа.

RunAsRob — довольно интересное ПО за авторством немецкого разработчика Оливера Хессинга (Oliver Hessing). В отличие от AdmiLink, ПО устанавливается как служба, запускаемая под привилегированной учетной записью (администратора или системы). Как следствие, подготовленный ярлык обращается к службе, которая уже в свою очередь запускает заданное ПО.

Особенность программы в том, что есть возможность авторизовать не только программы, но и папки (включая сетевые). А хранение настроек в реестре позволило добавить шаблоны групповых политик, примерно как мы писали в статье «Погружение в шаблоны и приручение GPO Windows». Благодаря этому при необходимости настройки можно применять прямо из Active Directory.

Основное окно программы.

Программа богато документирована на официальном сайте.

У этого автора есть еще и программа RunAsSpc, позволяющая запускать исполняемые файлы под правами другого пользователя, передавая учетные данные через зашифрованный файл.

Мне остается только добавить, что это ПО бесплатно только для личного использования.

Но учтите, что из программы, запущенной под административными правами, можно натворить бед. Например, запустить привилегированную командную консоль через диалог Файл — Открыть.

Запускаем cmd.exe прямо из редактора реестра.

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

А вам приходилось городить странные костыли? Предлагаю делиться историями в комментариях.

Информация к новости

  • Просмотров: 1 288
  • Автор: admin
  • Дата: 5-03-2021

5-03-2021

Категория: Windows 10 / Функционал Windows

Скачивая программы с сайтов разработчиков или других источников, вы, наверное, не раз замечали, что одни из исполняемых файлов этих программ имеют на себе характерную иконку щита, а другие нет. Что это означает? А означает это следующее: если исполняемый файл программы или её ярлык на рабочем столе отмечен этим жёлто-голубым значком, значит данная программа требует прав администратора. В связи с этим у многих пользователей возникает вопрос: а можно ли каким-то образом обойти это ограничение и установить/запустить программу в обычной учётной записи пользователя? Ответ на него будет зависеть от того, для каких целей разрабатывалась программа и с какими объектами файловой системы ей предстоит работать.

Как установить программу без прав администратора

В действительности многие из таких программ прекрасно могут работать без прав администратора, если владельцем компьютера им предоставлены соответствующие разрешения на папку Program Files и используемые ими ветки реестра. Являясь же обычным пользователем, вы можете устанавливать и запускать только те программы, которые не используют системный каталог ProgramFiles, если же вы запустите установочный файл приложения, требующего повышенных прав, то, во-первых, автоматически сработает UAC (контроль учётных записей), во-вторых, на экране появится окно с запросом пароля администратора.  Отключение админом UAC не решает проблемы, поскольку устанавливаемая программа всё равно попросит вас ввести пароль администратора. Что можно предпринять в этой ситуации? Воспользоваться функцией, или правильнее сказать, уровнем прав текущего пользователя AsInvoker, подавляющим UAC и сообщающим программе, что она может запуститься с привилегиями родительского процесса, то есть буквально с теми правами, которые имеются на данный момент у пользователя. Но «может» ещё не означает, что она действительно запустится, ведь привилегии в системе AsInvoker не повышает. Если в файле манифеста программы чётко прописано, что запускаться/устанавливаться программа должна исключительно с правами администратора, то AsInvoker не поможет. Так, нам так и не удалось установить системный настройщик Winaero Tweaker, а если бы и удалось, мы бы всё равно не смогли им пользоваться. Теперь, когда вы приблизительно знаете, как это работает в теории, перейдём к решению поставленной задачи на практике. Всё очень просто. Создайте Блокнотом обычный текстовый файл и вставьте в него следующий код:cmd /min /C «set __COMPAT_LAYER=RunAsInvoker && start «» «%1″»Сохраните файл как install.cmd (имя можно дать произвольное, главное, чтобы расширение было CMD или BAT), а затем перетащите на созданный скрипт установочный файл программы, которую хотите установить без прав администратора. На секунду на экране появится окно командной строки, а затем запустится мастер-установщик приложения. Когда вы дойдёте до шага «Папка установки», вам нужно будет заменить стандартный путь C:ProgramFilesназвание-программы другим путём, ведущим к какому-нибудь каталогу в профиле пользователя. Например, вы можете создать папку Programs в расположении %userprofile% и. 
В неё то и нужно устанавливать программы, поскольку на стандартную папку ProgramFiles у вас всё равно нет прав.  Ярлык установленной программы на рабочем столе и в меню создан, скорее всего, не будет, поэтому вам потребуется зайти в папку с инсталлированным приложением и создать его вручную. Теперь что касается минусов данного решения. Весьма вероятно, что установленные программы не смогут сохранять часть своих настроек, если по умолчанию они должны хранится в тех ключах реестра, которые обычный пользователь не может изменять по причине отсутствия у него прав администратора. Использование AsInvoker в учётной записи администратораИ в завершении хотелось бы сказать пару слов о том, что AsInvoker даёт администратору. Когда вы работаете в учётной записи администратора, все программы запускаются с правами вашей учётной записи (не путайте это, пожалуйста, с запуском программ от имени администратора, то есть с повышением привилегий в рамках одной учётной записи). А теперь предположим, что у вас есть программа, которой вы не хотите предоставлять права вашей учётной записи. Чтобы не создавать обычную учётную запись, вы можете воспользоваться функцией. Чтобы продемонстрировать разницу между запущенной обычным способом программой (в примере использовался штатный редактор реестра) и той же программой, запущенной через скрипт с прописанным в нём уровнем прав родительского процесса, мы добавили в Диспетчер задач дополнительную колонку «С повышенными правами». 
В первом случае напротив процесса в этой колонке указано «Да», а во втором — нет, то есть редактор реестра запустился с пониженными привилегиями. Поскольку запущенный в таком режиме regedit утрачивает часть своих полномочий, некоторые ключи реестра окажутся недоступными для редактирования. Это же касается любой другой программы. Не имея соответствующих прав, такая программа, если она окажется небезопасной, уже не сможет перезаписать важные системные файлы и ключи реестра. ВернутьсяКомментариев: 0 Дорогой посетитель, Вы можете задать на сайте любой вопрос и обязательно получите ответ!

Многие программы при запуске требуют повышения прав (значок щита у иконки), однако на самом деле для их нормальной работы прав администратора не требуется (например, вы вручную предоставили необходимые права пользователям на каталог программы в ProgramFiles и ветки реестра, которые используются программой). Соответственно, при запуске такой программы из-под простого пользователя, если на компьютере включен контроль учетных записей, появится запрос UAC и от пользователя потребует ввести пароль администратора. Чтобы обойти этот механизм многие просто отключают UAC или предоставляют пользователю права администратора на компьютере, добавляя его в группу локальных администраторов. Естественно, оба этих способа небезопасны.

Содержание:

Зачем обычному приложению могут понадобится права администратора

Права администратора могут потребоваться программе для модификации неких файлов (логи, конфигурации и т.д.) в собственной папке в C:Program Files (x86)SomeApp). По умолчанию у пользователей нет прав на редактирование данного каталога, соответственно, для нормальной работы такой программы нужны права администратора. Чтобы решить эту проблему, нужно под администратором на уровне NTFS вручную назначить на папку с программой право на изменение/запись для пользователя (или группы Users).

prava-na-zapis-polzovatelyu-v-papku-programmy-v-p.png

Примечание. На самом деле практика хранения изменяющихся данных приложения в собственном каталоге в C:Program Files неверна. Правильнее хранить данные приложения в профиле пользователя. Но это вопрос уже о лени и некомпетентности разработчиков.

Запуск программы, требующей права администратора от обычного пользователя

Ранее мы уже описывали, как можно отключить запрос UAC для конкретной программы, с помощью параметра RunAsInvoker. Однако этот метод недостаточно гибкий. Также можно воспользоваться RunAs с сохранением пароля админа /SAVECRED (также небезопасно). Рассмотрим более простой способ принудительного запуска любой программы без прав администратора (и без ввода пароля админа) при включенном UAC (4,3 или 2 уровень ползунка UAC).

Для примера возьмем утилиту редактирования реестра — regedit.exe (она находится в каталоге C:windowssystem32). При запуске regedit.exe появляется окно UAC и, если не подтвердить повышение привилегии, редактор реестра не запускается.

zapros-uac-na-povyshenie-prav.png

Создадим на рабочем столе файл run-as-non-admin.bat со следующим текстом:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

Теперь для принудительного запуска приложения без права администратора и подавления запроса UAC, просто перетащите нужный exe файл на этот bat файл на рабочем столе.

zapusk-prilozheniya-s-podavleniem-uac-parametr-runa.png

После этого редактор реестра должен запустится без появления запроса UAC. Открыв диспетчер процессов, и добавим столбец Elevated (С более высоким уровнем разрешений), вы увидите, что в системе имеется процесс regedit.exe с неповышенным статусом (запущен с правами пользователя).

regedit-s-pravami-polzovtelya-elevated-no.png

Попробуйте отредактировать любой параметр в ветке HKLM. Как вы видите доступ на редактирование реестра в этой ветке запрещен (у данного пользователя нет прав на запись в системные ветки реестра). Но вы можете добавлять и редактировать ключи в собственной ветке реестра пользователя — HKCU.

zapusk-redaktora-reestra-pod-polzovatelem.png

Аналогичным образом можно запускать через bat файл и конкретное приложение, достаточно указать путь к исполняемому файлу.

run-app-as-non-admin.bat

Set ApplicationPath="C:Program FilesMyApptestapp.exe"cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

Также можно добавить контекстное меню, которое добавляет у всех приложений возможность запуска без повышения прав. Для этого создайте следующий reg файл и импортируйте его в реестр.

Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT*shellforcerunasinvoker]@="Run as user without UAC elevation"[HKEY_CLASSES_ROOT*shellforcerunasinvokercommand]@="cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" "%1"""

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

run-as-user-without-uac-elevation.png

Переменная окружения __COMPAT_LAYER и параметр RunAsInvoker

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

set __COMPAT_LAYER=Win7RTM 640x480

svojstva-sovmestimosti-programmy.png

Из интересных нам опций переменной __COMPAT_LAYER выделим следующие параметры:

  • RunAsInvoker — запуск приложения с привилегиями родительского процесса без запроса UAC.
  • RunAsHighest — запуск приложения с максимальными правами, доступными пользователю (запрос UAC появляется если у пользователя есть права администратора).
  • RunAsAdmin — запуск приложение с правами администратора (запрос AUC появляется всегда).

Т.е. параметр RunAsInvoker не предоставляет права администратора, а только блокирует появления окна UAC.

Используемые источники:

  • https://lumpics.ru/how-to-install-the-program-without-administrator-rights/
  • https://xakep.ru/2016/09/29/bypassing-office-pc-restrictions/
  • https://habr.com/ru/company/pc-administrator/blog/485958/
  • https://remontcompa.ru/windows/windows-10/2278-kak-ustanovit-programmu-bez-prav-administratora.html
  • https://winitpro.ru/index.php/2018/06/28/zapusk-programmy-bez-prav-admina-i-zaprosa-uac/

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий