Программа для запуска программ с правами администратора. Упрощаем запуск приложений в Windows от имени администратора без отключения UAC

Виды беспроводных сетей 29.10.2020
Виды беспроводных сетей

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

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

В принципе, в случаях, когда доменному пользователю нужны права администратора для некоторого рабочего набора программ, его проще всего поместить в группу "Локальные администраторы" конкретной рабочей станции. Таким образом, пользователь сможет навредить только своему компьютеру и почти(!) не способен навредить домену в целом.

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

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

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

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

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

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

Неудобный вариант 2 - использовать logon-скрипты в групповой политике. С одной стороны все здорово, мы просто молча запускаем программу при логине пользователя обычным BAT-файлом и не раскрываем информацию о его содержимом (во всяком случае необходимо обладать некоторой квалификацией чтобы ее получить, а если пользователь обладает необходимой квалификацией - ему проще дать локального администратора). С другой стороны имеем часть недостатков из Неудобный вариант 1 и необходимость разместить учетки пользователей в одном OU в Active Directory, для применения групповой политики только к этим пользователям.

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

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

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

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

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

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

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

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

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

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

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

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

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

run-app-as-non-admin.bat

Set ApplicationPath="C:\Program Files\MyApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

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

Windows Registry Editor Version 5.00


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

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

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

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

set __COMPAT_LAYER=Win7RTM 640x480

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

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

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

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

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

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

Запуск от имени администратора с помощью контекстного меню

Контекстное меню вызывается правой кнопкой мышки. Жмём по любой программе мышкой и из контекстного меню нажимаем по опции . Так открывается командная строка и прочая программа, где необходимы повышенные привилегии.

Использование сочетания Ctrl+Shift+Enter при поиске

Когда на рабочем столе или в меню Пуск нет какого-либо инструмента мы обращаемся к поиску. Любая версия Windows оснащена им, а в десятой он наиболее удобен. Пропишите какую-нибудь команду, например, cmd – командная строка. Выбрав результат одновременен зажимаем комбинацию Ctrl+Shift+Enter . Простой способ не так ли?

Дополнительные свойства ярлыка

Допустим, вас интересует вопрос, . Значок уже расположен на рабочем столе в качестве быстрого доступа, но вы не желаете всё время запускать контекстное меню. Эту проблемку решить можно.

Заходим в свойства ярлыка (правая кнопка мышки и Свойства ) и идём в раздел «Дополнительно» .

Откроются дополнительные параметры. Там отметьте галочкой параметр «Запуск от имени администратора» . Теперь при обычном запуске программы она всегда откроется с повышенными правами.

Дополнительно! В свойствах на вкладке «Совместимость» есть опция «Запускать эту программу от имени администратора». Тоже полезная вещица.

Программы для запуска от имени администратора

Существует следующие программы: RunAs, AdmiLink, ExecAS.

Инструмент RunAs

Он является частью Windows, поэтому им можно пользоваться. Чтобы её запустить достаточно открыть командную строку и ввести следующую команду:

Скорее всего появится просьба о вводе пароля. Обязательно вводим.


Давайте создадим ярлык на рабочем столе. Нажимаем правой кнопкой мышки на пустой области и выбираем «Ярлык». В качестве расположения прописываем ту самую команду:

runas /user:ИмяПК\ИмяПользователя msconfig.exe

Даем название ярлыку и сохраняем.

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

При таком раскладе вы или люди, имеющие доступ к ПК, будут каждый раз вводить пароль. Этот момент решается добавлением в команду параметра /savecred, тогда команда будет такой:

runas /savecred /user:ИмяПК\ИмяПользователя msconfig.exe

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

Использование инструмента ExecAS

Запуск от имени администратора возможен программкой ExecAS . После запуска возникает окошко с предложением ввести информацию об учетной записи (логин и пароль), а еще имя программы и путь. После ввода данных жмём «Записать» .


В окошке ExecAS появился наш подопытный кролик, Закройте программу и откройте заново. Сразу же откроется та программа, указанную нами в ExecAS. Чтобы добавить дополнительное приложение нужно в командной строке прописать ExecAS.exe /S. (При этом нужно находиться в каталоге с утилитой, к примеру, C:\ExecAS).


Запустив ExecAS, добавляем еще какую-либо программку. Закрываем инструмент и опять запускаем. Появляется тоже самое окно. Но так нам не удобно, поэтому перейдем к созданию ярлыков:

Делаем два ярлыка с такими командами:

  • C:\ExecAS\ExecAS.exe 1
  • C:\ExecAS\ExecAS.exe 2

Числа 1 и 2 отвечают ща номер программы в ExecAS.

Запустив ярлыки, мы видим, что они открылись от имени администратора.

Использование утилиты AdmiLink

Указанная в заголовке утилита является консольной, и после инсталляции будет находиться в каталоге Windows.

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

  • В первом поле вводим путь до файла, который хотим запускать;
  • Параметры командной строки во втором поле заполнять необязательно;
  • Третья строчка будет заполнена самостоятельно, если это не так, впишите С:\windows\system32
  • Режим отображение окна. В 4 строчке есть 2 параметра:
    • SHOW – стандартной запуск ПО с видимым окном;
    • HIDE – работа ПО в фоновом режиме;

Настраиваем параметры на вкладке Account :

  • В качестве имени домена пишем имя своего ПК, либо NetBios и test.lan;
  • Имя пользователя – можно выбрать, нажав на кнопку с тремя точками;
  • Пароль от учетной записи и подтвердить.
  • Введя все данные, нажмите кнопку «Тестировать» .

Утилита проверит работоспособность указанной нами информации. Жмём любую клавишу в CMD.

После удачного теста нажмите кнопочку «Сгенерировать ключ запуска AdmiRun» . Если этого не сделать, то ничего не будет работать.

  • Идём на вкладку «Link» и делаем следующее:
  • Имя ярлыка – называем любым именем;
  • Каталог – указываем, где будет расположен ярлык;
  • Картинка – выбираем изображение для ярлыка;
  • Жмём кнопку «Сгенерировать командную строку» .
  • Теперь нажимаем большую кнопку «Создать Ярлык сейчас!» .

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

Пробуем запустить ярлык. Если всё удачно и программа запустилась от имени админа, то поздравляю. Иначе неверно выполнены действия на каком-то шаге.

Если зайти в свойства ярлыка и изменить программу в поле «Объект» на другую, то она попросту не запуститься. Это небольшая защита от вредоносов.

Планировщик заданий

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

Введите в поиске всего два слова: «Планировщик заданий» и откройте результат. В окне справа выбираем пункт «Создать задачу» .

Назовите её соответствующим именем, допустим, вы запускаете командную строку, тогда можно назвать CMD. Также ставим галку «Выполнить с наивысшими правами» .

На вкладке «Действия» нажмите кнопочку «Создать» .

Выберите действие (в нашем случае запуск программы). Нажмите «Обзор» и выберите запускаемую утилиту. Если вы запускаете командную строку, то путь будет таким: С:\Windows\System32\cmd.exe. Теперь нажимаем ОК.

На вкладе «Действия» появилась новая строчка. Отлично, можно нажать ОК.

Этап создания ярлыка

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

schtasks /run /tn имя_задачи_в_планировщике

имя_задачи_в_планировщике – это имя, которое вы дали в самом начале процесса создания задачи.

Ура, ярлык мы сделали, но это еще не всё. Перейдите в его свойства.

На вкладке «Ярлык» измените значок. Конечно, делать это вы не обязаны.

Дополнение к способу с планировщиком заданий

Для , можно использовать утилиту Elevated Shortcut . Вы берёте ярлык или исполняемого файла и перетаскиваете на значок Elevated Shortcut.

Запуск программ из командной строки

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

Выводы

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

Для работы некоторых программ и для запуска определенных команд требуются права администратора. Windows 7 и Windows 8 предлагают несколько способов, которые вы можете использовать для этого. Я нашел 5 способов, а если вы знаете другие, поделитесь ими с нами в комментариях ниже.

Как запускать программы от имени администратора с начального экрана в Windows 8

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

В числе опций контекстного меню кнопка с названием «Запуск от имени администратора». Нажмите на эту кнопку и выбранная программа будет запущена. Если вы попытаетесь запустить приложение из-под учетной записи без прав администратора, вам будет предложено ввести пароль администратора. Если вы не укажите пароль, программа не будет запущена.

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

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

Если в находитесь на рабочем столе или в проводнике (в Windows 8 или 7), существует еще один способ запустить любую программу с правами администратора.

Во-первых, найдите программу (это может быть исполняемый файл или ярлык), которую вы хотите запустить. Затем нажмите правой кнопкой мыши и выберете «Запуск от имени администратора».

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

Что делать, если нужно, чтобы программа всегда запускалась от имени администратора? Выход есть.

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

В окне «Свойства» перейдите на вкладку «Совместимость». В нижней части активируйте опцию «Выполнять эту программу от имени администратора» и нажмите на кнопку OK.

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

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

В окне свойств ярлыка, на вкладке «Ярлык», нажмите на кнопку «Дополнительно».

Активируйте опцию «Запуск от имени администратора» и нажмите на кнопку OK. Затем еще раз нажмите на кнопку OK в окне «Свойства».

Заключение

Отличного Вам дня!

Хотите разрешить пользователям со стандартной учетной записью запускать приложения с правами администратора без UAC или запроса на ввод пароля? Тогда я расскажу, как сделать. Мы создадим ярлык, использующий команду runas /savecred , которая сохраняет пароль. Замечу, что это можно считать дырой в безопасности – обычный пользователь сможет использовать runas /savecred для выполнения любой команды от имени администратора без ввода пароля. Тем не менее, в некоторых ситуациях это может быть полезно – например, если вы хотите, что бы ваш ребенок из под стандартной учетной записи мог запускать приложения от имени администратора не спрашивая вас.

Включаем учетную запись администратора

В первую очередь необходимо включить встроенную учетную запись администратора, которая по умолчанию отключена. Итак, щелкните правой кнопкой мыши по ярлыку командной строки и выберите «Запустить от имени администратора».

В открывшемся окне командной строки выполните следующую команду:

net user administrator /active:yes

Теперь учетная запись включена, хотя и без пароля. Чтобы установить пароль, откройте «Панель управления, выберите категорию «Учетные записи пользователей и семейная безопасность», а затем откройте меню «Учетные записи пользователей». Далее щелкните по ссылке «Управление другой учетной записью».

Выберите учетную запись администратора, нажмите на кнопку «Создать пароль», и создайте пароль для учетной записи администратора.

Создаем ярлык

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

В открывшемся окне нужно ввести команду следующего типа:

runas /user:ComputerName \Administrator /savecred “C:\Path\To\Program.exe

Обратите внимание, что вам необходимо заменить ComputerName на имя вашего компьютера, а C:\Path\To\Program.exe на полный путь к программе, которую вы хотите запустить. Например, если имя компьютера Laptop, а программой, которую вы хотите запустить, является Auslogics BoostSpeed, вам необходимо ввести следующий путь:

runas /user:Laptop\Administrator /savecred “C:\Program Files\Auslogics\Auslogics BoostSpeed\BoostSpeed.exe"

В следующем окне введите имя для ярлыка. По желанию можно выбрать иконку для нового ярлыка – щелкните по нему правой кнопкой мыши и выберите пункт «Свойства».

В диалоговом окне «Свойства» нажмите на кнопку «Сменить значок» и выберите подходящий.

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

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

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

Пароль администратора хранится в «Диспетчере учетных данных» – если вы хотите удалить сохраненный пароль, вы можете сделать это оттуда.

Отличного Вам дня!

Рекомендуем почитать

Наверх