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

Обновлено: 19.09.2024

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

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

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

Установка игр и приложений – это процесс, знакомый каждому владельцу ПК. Обычно инсталляция происходит через запуск EXE-файла, и вот здесь у пользователя могут возникнуть проблемы. Инсталлятор попросит выдать расширенные права, которых у текущего аккаунта может не быть. Поэтому важно понимать, как установить программу без прав администратора на операционной системе Windows 10.

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

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

screenshot_1

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

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

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

screenshot_2

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

Во-первых, вы можете изменить параметры безопасности для каталога, в который будете устанавливать игру или программу. Обычно речь идет о директории «Program Files». Но вы можете использовать для инсталляции и другую папку, так что действуйте аккуратно:

  • Войдите в учетную запись администратора.
  • Запустите проводник.
  • Найдите папку «program Files».
  • Кликните по ней ПКМ.
  • Перейдите в «Свойства».

screenshot_3

  • Во вкладке «Безопасность» нажмите на кнопку «Изменить».

screenshot_4

  • Поставьте галочку напротив пункта «Полный доступ».
  • Сохраните новые настройки.

screenshot_5

Теперь для запуска и установки приложения через папку «Program Files» расширенные полномочия требоваться не будут. Но это не касается других каталогов, включая «Program Files (x86), в связи с чем рекомендуется еще раз проверить правильность выбора директории.

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

Если вы не можете получить доступ к административному аккаунту, то можете обойти ограничения через «Командную строку»:

  • Щелкните ПКМ по значку «Пуск».
  • Запустите КС.

screenshot_6

  • Введите запрос «runas /user:User_Name\administrator Program_Name.exe», где вместо «User_Name» будет указано название вашего профиля, а вместо «Program_Name.exe» установочный файл или файл запуска.
  • Нажмите на клавишу «Enter».

screenshot_7

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

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

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

На заметку. Портативные версии ПО имеют в своем названии пометку «Portable».

screenshot_8

Попробуйте найти интересующую программу именно в таком виде и запустите ее привычным способом без помощи административного аккаунта. Просто дважды кликните ЛКМ по EXE-файлу, и прога откроется.


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

Если вы видите на иконке исполняемого файла программы характерный сине-желтый значок щита, значит, данная программа требует для своей работы прав администратора. Это, однако, еще не означает, что обычный пользователь не сможет установить такую программу. Многие отмеченные значком щита программы могут устанавливаться и запускаться без прав администратора, например, если установка производится в каталог профиля пользователя или если владелец компьютера предоставил пользователю права на системную папку «Program Files» и соответствующие ключи реестра.

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

Способ 1: Установка с помощью AsInvoker

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

  1. Создайте в Блокноте или любом другом текстовом редакторе обычный текстовый файл.
  2. Скопируйте и вставьте в него код cmd /min /C "set __COMPAT_LAYER=RunAsInvoker && start "" "%1"" .


Установка-с-помощью-AsInvoker-2

Установка-с-помощью-AsInvoker-3

Способ 2: Редактирование манифеста программы

Требование программой прав администратора обычно прописывается разработчиком в ее манифест — конфигурационный файл, включенный в состав EXE-файла. Отменить требование можно путем редактирования манифеста с помощью бесплатной утилиты Resource Hacker.

  1. Скачайте Resource Hacker с сайта разработчика и запустите. Перетащите исполняемый файл программы, манифест которой хотите отредактировать, на рабочее окно Resource Hacker. Слева в меню выберите раздел «Manifest» и откройте манифест приложения.
  2. Обратите внимание на содержимое тегов «requestedExecutionLevel»: если программа требует прав администратора, в качестве значения параметра «level» будет указано «requireAdministrator». Замените «requireAdministrator» на «asInvoker».
  3. Сохраните изменения в редактируемом файле нажатием сначала F5, а затем Сtrl + S.

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

Читайте также: