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

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

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

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

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

Как запустить программу, которая требует прав администратора под обычным пользователем?

Ранее мы описывали, как запустить программу с сохраненным паролем администратора, используя опцию /SAVECRED. Данное действие небезопасно.

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

В качестве примера возьмем редактор реестра – regedit.exe. Когда вы запускаете regedit.exe, появляется окно UAC, и если вы не подтвердите повышение прав, редактор реестра не запустится.

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

Вариант 1.

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

cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» %1″

Чтобы принудительно запустить regedit.exe без прав администратора и подавить приглашение UAC, просто перетащите файл EXE, который вы хотите запустить, на этот файл BAT на рабочем столе.

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

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

Таким же образом вы можете запустить любое приложение, используя файл BAT. Просто укажите путь к исполняемому файлу.

Вариант 2.

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

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

Источник

Как отключить UAC для определенной программы в Windows 10?

В этой статье мы покажем, как выборочно отключить UAC для определенного приложения, не отключая полностью эту службу User Account Control. Рассмотрим несколько способов отключения контроля учетных записей для приложениия с помощью флага совместимости RunAsInvoker.

Флаг RunAsInvoker позволяет запустить приложение с маркером, унаследованным от родительского процесса. При этом отменяется обработка манифеста приложения, и обнаружение процессов установщика. Данный параметр не предоставляет права администратора, а только блокирует появление окна UAC.

В качестве примера мы отключим появление запроса User Account Control для редактора реестра (regedit.exe). Несмотря на то, что у моей учетной записи есть права администратора, при запуске утилиты все равно появляется запрос UAC на подтверждение запуска.

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

Отключение UAC для программы с помощью Application Compatibility Toolkit

Нам понадобится утилита Application Compatibility Toolkit, которая входит в состав Windows ADK. Скачать актуальную версию Windows ADK для Windows 10 можно здесь.

Запустите скачанный файл adksetup.exe и при установке (программе нужен доступ в Интернет) выберите только Application Compatibility Toolkit.

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

В системе появится две версии Application Compatibility Administrator — 32-х и 64-х битная версия. Запустите версию Application Compatibility Administrator в зависимости от разрядности приложения, для которого вы хотите подавить запрос UAC.

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

Запустите утилиту Compatibility Administrator (32-bit) с правами администратора (!). В разделе Custom Databases, щелкните ПКМ по элементу New Database и выберите пункт Create New-> Application Fix.

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

В открывшемся окне нужно указать имя приложения (regedit), производителя (Microsoft) и путь к исполняемому файлу ( C:\Windows\regedit.exe ).

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

Пропустите следующее окно мастера настройки (Compatibility Mode), нажав Next. В окне Compatibility Fixes отметьте опцию RunAsInvoker.

При желании можно убедиться, что приложение может работать без UAC, нажав на кнопку тестового запуска (Test Run).

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

В окне Matching Information вы можете указать какие параметры приложения нужно проверять (версию, чексумму, размер и т.д.). Я оставил включенными проверки COMPANY_NAME,PRODUCT_NAME и ORIGINAL_FILENAME, чтобы не пересоздавать файл исправления после очередного обновления Windows 10 и обновлении версии файла regedit.

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

Нажмите Finish и укажите имя файла, в который нужно сохранить созданный пакет исправления совместимости, например regedit.sdb. В этом файле будут содержаться инструкции по запуску приложения с заданными опциями совместимости. запуск программы без прав администратора и подавлением запроса uac

Осталось применить пакет с исправлением совместимости к вашему приложению. Сделать это можно непосредственно из консоли Compatibility Administrator (выбрав в меню пункт Install), либо из командной строки. запуск программы без прав администратора и подавлением запроса uac

Если все сделали правильно, появится сообщение об успешном применении пакета.

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

После установки пакета, соответствующая запись появится в списке установленных программ Windows (Programs and Features).

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

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

Теперь проверьте, с какими привилегиями запущено данное приложение. Для этого в Task Manager на вкладке процессов добавьте столбец “Elevated”. Убедитесь, что процесс regedit.exe запущен от пользователя в непривилегированном режиме ( Elevated=No ).

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

В таком процесс редактора реестра пользователь может редактировать только собственные ветки реестра, но при попытке отредактировать/создать что-то в системной HKLM, появляется ошибка “You don’t have the requisite permissions”.

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

В дальнейшем это исправление совместимости можно распространить на компьютеры пользователей с помощью групповых политик. Тем самым можно добиться отключения проверки системы контроля учетных записей (UAC) для определенных приложений на множестве компьютеров в домене Active Directory.

Чтобы удалить исправление совместимости, выполните команду

sdbinst –u c:\ps\regedit.sdb

Включить флаг RUNASINVOKER для программы через реестр

В Windows 10/8.1/7 вы можете включить флаг совместимости RUNASINVOKER через реестр. Флаг совместимости приложения можно выставить для одного пользователя или для всех пользователей компьютера:

Например, для regedit нужно в ветке реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers создать новый строковый параметр (REG_SZ) вида:

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

Если нужно включить режим совместимости приложения для всех пользователей компьютера, этот параметр нужно создать в ветке реестра: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers.

Bat файл для запуска приложения в режиме RunAsInvoker

Есть еще вариант для запуск приложения без прав администратора и подавлением запроса UAC (см. статью).

Просто создайте bat файл со следующим кодом:

Set ApplicationPath=»C:\windows\regedit.exe»
cmd /min /C «set __COMPAT_LAYER=RUNASINVOKER && start «» %ApplicationPath%»

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

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

Итак, мы рассмотрели, как отключить UAC для конкретной программы без полного отключения контроля учетных записей. Это позволит вам запускать программы Windows под обычным пользователем без появления запроса UAC и без пароля администратора.

Источник

Как запускать программу без Контроля учётных записей?

В одной из предыдущих статей блога мы разбирали тему запуска определённых программ без «назойливого» окна Контроля учётных записей. Там мы разбирали вариант обхода Контроля для конкретной программы с помощью Планировщика заданий. Таким методом пользуются сами программы ещё на этапе собственной установки в Windows (например, программа очистки CCleaner). Что до меня, избавляться от этой «назойливости» отключением UAC полностью как функции я КРАЙНЕ не рекомендую. Несмотря на то, что система открыто позволяет это сделать, а настройки отключения Контроля находятся в, что называется, шаговой доступности, я не всегда порой понимаю, зачем Microsoft вообще позволяет это пользователям делать. Но, так или иначе, вопрос о том, как избежать появления окна для отдельных программ насущен. Так что вернёмся к этой теме и рассмотрим вопрос как запускать программу без окна Контроля учётных записей. В конце статьи маленькая видеоиллюстрация на тему, как всё это дело выглядит вживую.

Про что в статье?

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

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

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

Такой подход к запуску любого исполнительного файла позволяет использовать один из самых интересных вариантов исключения окна Контроля учётных записей с помощью простого батника. То бишь batch-скрипта. Т.е. скрипт вы запустили, окно UAC не появилось. Но повторный запуск программы вновь заставит окно Контроля появиться как ни в чём не бывало, предотвращая несанкционированный запуск. Таким образом, окно UAC не появляется ИМЕННО тогда, когда это нужно пользователю.

Откуда растут ноги или кусок теории про App-V

Microsoft App-V, она же функция виртуализации приложений — компонент серверных и настольных операционных систем, функция которых разделять и изолировать устанавливаемые извне приложения со стороны от самой ОС-и и остальных программ. Программа «перехватывается» системой и динамически (в режиме онлайн) обрабатывается для показа пользователю. В нашем случае используется одна из главных возможностей функции App-V (но далеко не единственных) — Совместимость приложений различных поколений для одной и той же платформы. И от версии к версии системы менялся подход самой App-V по отношению к устанавливаемым в Windows программам. Так, в Windows XP, не имея административных прав, пользователь с некоторыми программами полноценно вообще работать не мог. А вот со времён появления Vista все приложения обязали использовать файл-манифест, уточняющий запрашиваемый уровень прав. Среди них были:

СРАЗУ

Установка переменной __COMPAT_LAYER (первые символы — двойное подчёркивание) не повышает уровень ваших привилегий до административных. Если у вашей учётной записи таковых не имеется. Она именно не позволяет появиться окну Контроля и разрешает программе запуститься от имени любого пользователя. Таким образом использование перемененной безопасно до тех пор, пока некто не заполучит чудесным образом права Администратора. Так что любая вариация с переменными RunAsHighest (заставит UAC появиться, если права Администратора есть) или RunAsAdmin (инициирует окно Контроля всегда) относительно безопасны.

Как запускать программу без Контроля учётных записей с помощью батника?

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

закроем его, присвоив произвольное имя, но с расширением .bat. Чтобы так сделать, вам придётся заставить Windows отображать скрытые файлы и папки.

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

Или скачать готовый приготовленный мною батник в архиве по ссылке:

Как запускать программу без Контроля учётных записей с ярлыка?

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

cmd.exe /c SET __COMPAT_LAYER=RunAsInvoker & START «»

Т.е. вместо, допустим

По необходимости смените значок ярлыка, поискав подходящий в папке с этой программой.

Вариант три: настройки реестра

С той же целью вы можете прописать в контекстном меню исполнительных файлов особый пункт. Назовём его, скажем, Запуск без окна UAC.

Для этого в текстовом редакторе типа NotePad++ (Window-возный Блокнот не подойдёт для русской локали) пропишите вот этот код:

Сохраните файл с расширением .reg. Если соберётесь прописать контекстный пункт вручную с помощью:

Если от пункта устанете или ошибётесь на первых порах в названии, удалите параметр из cmd от имени администратора:

Как всегда, можете скачать готовый вариант reg-файла с К76 в архиве:

Источник

[Конспект админа] Что делать, если программа хочет прав администратора, а вы нет

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

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

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

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

Ну, и зачем тебе права?

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

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

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

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

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

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

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

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

Нет, не будет тебе прав

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

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

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

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

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

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

То запроса UAC не будет, как и административных прав у приложения:

запуск программы без прав администратора и подавлением запроса 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 в новой или имеющейся базе данных:

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

Создаем исправление приложения.

Имя и издатель значения не имеют. Имеет значение только расположение файла — тут нужно указать реальный проблемный bnk.exe (где он будет лежать на самом деле — не важно).

Далее необходимо в списке исправлений выбрать RunAsInvoker.

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

Выбираем нужный фикс.

Все остальное оставляем по умолчанию, сохраняем базу данных. Должно получиться примерно так:

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

Созданный фикс для bnk.exe.

После этого достаточно будет установить базу данных, щелкнув по ней правой кнопкой и выбрав Install. Теперь пользователи смогут сами грузить классификаторы банков.

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

Ну ладно, держи права

Казалось бы, самым очевидным решением для запуска нашего странного ПО выглядит использование встроенной утилиты Runas. Документация доступна на сайте Microsoft.

Ну, посмотрим, что из этого выйдет.

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

запуск программы без прав администратора и подавлением запроса uac)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *