Как запустить программу без прав администратора и обойти подсказку UAC?
При запуске многие программы требуют повышения прав, хотя на самом деле им не нужны права администратора для их нормальной работы. При запуске такой программы под учетной записью обычного пользователя (если на компьютере включен контроль учетных записей пользователей) появится приглашение UAC, и пользователю потребуется ввести пароль администратора. Чтобы обойти этот механизм, многие пользователи просто отключают UAC или предоставляют привилегии администратора пользователю на компьютере, добавляя учетную запись пользователя в локальную группу «Администраторы». Конечно, оба метода небезопасны.
Почему некоторые приложения Windows не работают под обычными пользователями и требуют прав администратора?
Приложению могут потребоваться права администратора для изменения некоторых файлов (журналов, конфигураций и т. д.) В своей папке C:\Program Files (x86)\Приложение. По умолчанию пользователи не имеют прав на редактирование (запись и изменение) этого каталога. Для нормальной работы этой программы требуются права администратора. Чтобы решить эту проблему, необходимо вручную предоставить разрешение на изменение и/или запись для пользователя (или группы пользователей) в папке приложения на уровне NTFS.
Как запустить программу, которая требует прав администратора под обычным пользователем?
Ранее мы описывали, как запустить программу с сохраненным паролем администратора, используя опцию /SAVECRED. Данное действие небезопасно.
Давайте рассмотрим более простой способ заставить любую программу работать без ввода пароля администратора и с включенным UAC.
В качестве примера возьмем редактор реестра – regedit.exe. Когда вы запускаете regedit.exe, появляется окно UAC, и если вы не подтвердите повышение прав, редактор реестра не запустится.
Вариант 1.
Создайте на рабочем столе текстовый файл run-as-non-admin.bat, содержащий следующий код :
cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» %1″
Чтобы принудительно запустить regedit.exe без прав администратора и подавить приглашение UAC, просто перетащите файл EXE, который вы хотите запустить, на этот файл BAT на рабочем столе.

Редактор реестра запуститься без запроса UAC. Если вы откроете Диспетчер задач и перейдете на вкладку Подробности , вы увидите, что в системе существует процесс regedit.exe, запущенный с правами обычного пользователя.

Таким же образом вы можете запустить любое приложение, используя файл BAT. Просто укажите путь к исполняемому файлу.
Вариант 2.
Рассмотрим еще один способ. Вы можете добавить контекстное меню, которое позволяет запускать все приложения без повышения прав. Для этого создайте следующий файл REG и импортируйте его в реестр.
Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker] @="Run as user without UAC privilege elevation" [HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command] @="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""
После этого, чтобы запустить любое приложение без прав администратора, просто выберите пункт «Run as user without UAC privilege elevation» в контекстном меню.
Как установить программу без прав администратора
Скачивая программы с сайтов разработчиков или других источников, вы, наверное, не раз замечали, что одни из исполняемых файлов этих программ имеют на себе характерную иконку щита, а другие нет. Что это означает? А означает это следующее: если исполняемый файл программы или её ярлык на рабочем столе отмечен этим жёлто-голубым значком, значит данная программа требует прав администратора. В связи с этим у многих пользователей возникает вопрос: а можно ли каким-то образом обойти это ограничение и установить/запустить программу в обычной учётной записи пользователя? Ответ на него будет зависеть от того, для каких целей разрабатывалась программа и с какими объектами файловой системы ей предстоит работать.
Как установить программу без прав администратора
В действительности многие из таких программ прекрасно могут работать без прав администратора, если владельцем компьютера им предоставлены соответствующие разрешения на папку 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 утрачивает часть своих полномочий, некоторые ключи реестра окажутся недоступными для редактирования. Это же касается любой другой программы. Не имея соответствующих прав, такая программа, если она окажется небезопасной, уже не сможет перезаписать важные системные файлы и ключи реестра.
Запуск программ в Windows без прав администратора при помощи RunWithRestrictedRights

Автор: Ashwin Задавались ли вы вопросом, безопасно ли запускать очередное скачанное приложение? В этой статье мы рассмотрим этот вопрос. Одно из наилучших решений – запуск программы в песочнице (например, в Sandboxie) или на виртуальной машине, поскольку в этом случае права доступа у приложения будут серьезно ограничены. Мне всегда было интересно, почему приложениям нужны расширенные права. Например, в случае утилит для усиления безопасности системы или управления функциями в Windows, такой запрос правомерен, но в других ситуациях всё не так очевидно. Программы, после запуска которых появляются всплывающие окна от UAC (User Account Control; Контроль учётных записей пользователей), могут не запуститься вовсе, если вы не разрешите. Рисунок 1: Описание и параметры приложения RunWithRestrictedRights С другой стороны, было бы неплохо использовать эту возможность в принудительном режиме. И здесь нам на помощь приходит RunWithRestrictedRights. Эта утилита, управляемая из командной строки, использует Windows Integrity Mechanism для ограничения прав приложений, чтобы не нанести вред системе (лучше, чем PSExec). Когда я впервые запустил RunWithRestrictedRights, возникла ошибка «a required privilege is not held by the client» (у клиента нет необходимых привилегий). Для решения этой проблемы у учетной записи должны быть следующие права, используемые RunWithRestrictedRights при управлении другими приложениями:
- Настройка квот памяти для процесса (Adjust memory quotas for a process).
- Замена маркера уровня процесса (Replace a process level token).
Более подробно об этих правах можно узнать в официальной документации. Права добавляются в разделе Control Panel (Панель управления) > Administrative Tools (Администрирование) > Local Security Policy (Локальная политика безопасности) > User Rights Assignment (Назначение прав пользователя). Следует убедиться, что в вышеуказанные разрешения добавлена группа «Администраторы». После внесения изменения необходимо перезагрузить компьютер.
Примечание: мне нужно было настроить только права, связанные с заменой маркера уровня процесса.
Как использовать RunWithRestrictedRights
- Запустите командную строку с административными правами (этот шаг очень важен).
- Введите команду, используя следующий шаблон: C:\RunWithRestrictedRights.exe «application».
Необходимо указать местонахождение директории с файлом RunWithRestrictedRights.exe. Я использую папку H:\Downloads\. Слово «application» нужно заменить на приложение, которое выходите запустить (Notepad, MSPaint и так далее).
Таким образом, итоговая команда должна выглядеть так: H:\Downloads\RunWithRestrictedRights.exe notepad. Для удобства можно привязать переменную окружения к местонахождению приложения.

Рисунок 2: Пример запуска приложения с ограниченными правами
Если всё сделано правильно, приложение с ограниченными привилегиями должно запуститься. В командной строке вы также увидите новое сообщение, что «notepad» запущен на уровне Medium Integrity с идентификатором процесса – aaaa, где aaaa – четырехзначный номер.
Попробуем запустить приложение, не являющее частью операционной системы и требующее UAC (например, Kingston SSD Manager).
Я запустил команду C:\Windows\system32>H:\Downloads\RunWithRestrictedRights.exe «C:\Program Files (x86)\Kingston_SSD_Manager\KSM.exe».

Рисунок 3: Пример запуска приложения от стороннего разработчика
Приложение запустилось с ограниченными правами и, что более важно, не было сообщения от UAC. Вы можете сделать то же самое при запуске других программ, однако если эти приложения зависят от системных ресурсов, то могут работать некорректно.
Как проверить, что приложение запущено с ограниченными правами? Разработчик рекомендует использовать Process Explorer. Зайдите в свойства процесса и посмотрите флаги BUILTIN\Administrators, Mandatory Label и Local account and member of Administrators group (см. рисунок ниже).

Рисунок 4: Свойства процесса KSM.exe
Кроме того, в RunWithRestrictedRights предусмотрено несколько параметров, которые можно использовать следующим образом: RunWithRestrictedRights.exe -argument.
Аргумент –w запустит приложение с ограничениями сразу же, но возврата к командной строке не произойдет, пока программа не закроется. Например, H:\Downloads\RunWithRestrictedRights.exe «notepad» –w.
Хотите запускать программы с уровнем Low Integrity? Воспользуйтесь аргументом –l. В случае с аргументом –P используются права группы Power Users. Аргумент -d запрещает использование прав SID. Аргумент –v предназначен для отображения более детальной информации.
В общем, довольно простое приложение, позволяющее повысить уровень безопасности.
Заключение
RunWithRestrictedRights – портативное приложение, которое работает, начиная с Windows 7 и выше (хотя разработчики утверждают, что в Windows XP тоже работает). Утилита также поддерживает Windows Server 2003 и более поздние версии. Программа разработана компанией Core Technologies, которая также разрабатывает Service Trigger Editor, рассмотренным нами недавно.
RunWithRestrictedRights можно использовать в разных ситуациях. Например, для запуска с ограниченными правами при условии, что в расширенных привилегиях нет необходимости. К сожалению, проверить работоспособность приложения можно только после запуска.
С учетом вышесказанного, для выполнения ежедневных обязанностей хорошей идеей будет использование аккаунтов обычных пользователей, а административных – только в случае крайней необходимости. В 2017 году компания Microsoft сообщила, что пользователи могут защититься от 94% критических уязвимостей в Windows, если будут использовать неадминистративные учетные записи.
Большой брат следит за вами, но мы знаем, как остановить его. Подпишитесь на наш канал!
Как установить программу без прав Администратора в Windows

Учимся ставить игры и приложения без прав администратора. Обходим ограничение, которые позволяет установить ПО только админу. При попытке установки приложения или игры обычным пользователем (не администратором), функция контроля учетных записей (UAC) запросит пароль админского аккаунта. Обхитрим встроенную защиту.
Создадим BAT-файл для установки ПО без прав администратора
Сначала рассмотрим «многоразовый» метод, который будет полезен тем, кому часто нужно ставить ПО, которое не желает устанавливаться без привилегий админа. Чтобы решить задачу — немного попрограммируем: создадим «батник» (BAT-файл). Откройте системный Блокнот или сторонний текстовый редактор и вставьте туда:
set __COMPAT_LAYER=RunAsInvoker && start «» %1

Создайте файл с расширением *.bat. Например, назовате его installnonadmin.bat. Сохраните «батник» в удобном вам месте диска вашего ноутбука или настольного ПК.

Надо поставить игру или программу — перетащите на созданный BAT-ник файл установщика приложения или игры. Стартует мастер установки, далее следуйте инструкциям на экране.

Поставим приложение без прав администратора через командную строку
Первым делом откроем командную строку:

- Клавиатурным сочетанием Win + R откройте окно «Выполнить».
- Напечатайте cmd в строке «Открыть:».
- Кликните по «ОК» внизу.
Описание метода
Напечатайте в консоли команду:
Больше статей и видео в нашем Дзен-канале
Перетащите мышкой исполняемый файл установщика программы в командную строку, чтобы вставить полный путь к данному файлу. Затем нажмите Enter, чтобы установка ПО стартовала.

«Подводные камни» подхода
Метод «одноразовый» и далёк от идеала. Последовательность вышеописанных действий придется повторять для каждой новой программы или игры. Прав админа данный способ вам не даст, лишь позволит обойти запрос UAC. Не даст и поставить программу в защищенные папки (ОС) — к таковым относится и Program Files. Не проблема — создаем собственную папку для установки игры или приложения.
У способа есть и ещё один минус — мастер установки не сможет внести правки в реестр для всех пользователей. В итоге ряд программ может работать некорректно. Не сумеет добавить нужные пункты в контекстные меню файлов или папок. При этом установленная программа будет в целом работать нормально. Третий изъян рассмотренного подхода — удалять придется запуском файла удаления (uninstall) из папки, куда установлено приложение. Способ оптимален для ситуаций, когда ставить требующий прав админа софт приходится изредка.
Рассмотренные методы применяются на собственный страх и риск пользователя. И только на личном компе, в офисе если надо поставить софт — просите системного администратора или штатного ИТ-специалиста.
Вы сидите в Windows под админом? Напишите в комментариях.
