Как установить программу без прав администратора
Скачивая программы с сайтов разработчиков или других источников, вы, наверное, не раз замечали, что одни из исполняемых файлов этих программ имеют на себе характерную иконку щита, а другие нет. Что это означает? А означает это следующее: если исполняемый файл программы или её ярлык на рабочем столе отмечен этим жёлто-голубым значком, значит данная программа требует прав администратора. В связи с этим у многих пользователей возникает вопрос: а можно ли каким-то образом обойти это ограничение и установить/запустить программу в обычной учётной записи пользователя? Ответ на него будет зависеть от того, для каких целей разрабатывалась программа и с какими объектами файловой системы ей предстоит работать.
Как установить программу без прав администратора
В действительности многие из таких программ прекрасно могут работать без прав администратора, если владельцем компьютера им предоставлены соответствующие разрешения на папку 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 утрачивает часть своих полномочий, некоторые ключи реестра окажутся недоступными для редактирования. Это же касается любой другой программы. Не имея соответствующих прав, такая программа, если она окажется небезопасной, уже не сможет перезаписать важные системные файлы и ключи реестра.
Ctrl
Enter
Заметили ошибку
Выделите и нажмите Ctrl+Enter