Меню
Бесплатно
Главная  /  Советы  /  Запустить от имени администратора без прав. Зачем обычному приложению могут понадобится права администратора

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

Барак Адама 23 сентября 2011 в 18:54

Запуск приложения с правами администратора и без выдачи сообщения при включенном UAC (Windows 7)

Навеяно статьей Настройка UAC в Windows 7 . Я прочитал комментарии и мне захотелось описать здесь возможность запуска доверенного приложения с правами администратора при включенном UAC. Данная технология действительно хороший шаг компании Майкрософт к безопасности использования компьютера пользователем, однако пользователь может часто использовать неподписанные приложения которым сам доверяет, что приводит к постоянным выдачам сообщения системы UAC и дальнейшему раздражению пользователя. Как запускать приложения с правами администратора и без выдачи сообщения от UAC я рассмотрю на примере использования FAR Manager, который мне необходим по работе.
Итак, для начала необходимо зайти в планировщик заданий
«Пуск - Все программы - Стандартные - Служебные - Планировщик заданий» (Start - All Programs - Accessories - System Tools - Task Scheduler)
и «Создать задачу» (Create task). В появившемся окне задаем «Имя» (Name), (к примеру, FAR) задачи и устанавливаем флажок на опции «Выполнять с наивысшими правами» (Run with highest privileges).
Далее переходим на вкладку «Действия» (Actions) и жмем кнопку «Создать» (New) для настройки запускаемой программы.
В поле «Программа или сценарий» (Program/script) с помощью кнопки «Обзор» (Browse) указываем местоположение необходимого нам запускаемого файла и нажимаем кнопку «Открыть» (Open). Далее нажимаем два раза кнопки ОК.

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

Создаем ярлык на рабочем столе и в поле «Расположение объекта» (Target) вводим schtasks /run /tn FAR (если же имя задачи было из нескольких слов разделенных пробелами, необходимо имя задачи в ярлыке указать в «двойных кавычках»). Жмем «Далее» (Next), задаемя имя ярлыка (лучше всего чтобы оно совпадало с названием программы) и жмем кнопку ОК. Далее можно зайти в свойства этого ярлыка и назначить ему иконку от программы. Минус данного метода состоит в том, что таким образом можно запустить всего одну копию программы. Чтобы сделать две копии, необходимо будет прописать еще одно задание в планировщике с другим именем, но по той же системе и так же сделать на него ярлык.

Теги: Windows 7, UAC, Task scheduler, запуск приложений

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Выводы

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

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

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

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

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


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

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

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


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

Некоторое ПО имеет портативную версию, не требующую установки. Вам будет достаточно скачать ее с официального сайта разработчика и запустить. Выполнить это можно очень просто:


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

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

Некоторым приложениям для работы в Windows требуются повышенные права, и запускать их необходимо от имени администратора. При этом выводится запрос "Контроля учетных записей пользователя " (User Account Control или UAC ), в котором система просит Вашего согласия на запуск приложения.

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

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

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

В качестве примера будем запускать командную строку (cmd) от имени администратора.

Способ №1 (обычный) - запуск через правую клавишу мыши (запрос UAC отображается)

Нажмите правой клавишей мыши по значку нужного приложения и выберите пункт "Запуск от имени администратора ":

Способ №2 - запуск с использованием "Ctrl+Shift+Enter " (запрос UAC отображается)

Нажмите Пуск , в строке поиска наберите нужную команду и нажмите Ctrl+Shift+Enter .

Способ №3 - устанавливаем запуск от имени администратора в свойствах ярлыка (запрос UAC отображается)

Щелкните правой клавишей мыши по нужному ярлыку и выберите пункт "Свойства ".

Перейдите на вкладку "Ярлык ", нажмите "Дополнительно ", установите флажок "Запускать от имени администратора ":

Или перейдите на вкладку "Совместимость " и установите флажок "Выполнять эту программу от имени администратора ":

Способ №4 - упрощаем запуск для избранных приложений при помощи планировщика заданий (запрос UAC не отображается)

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

Переходим к самому интересному способу. Если есть приложение, которое Вы постоянно запускаете, и оно получено от надёжного производителя ПО, например, это приложение Windows - можно упростить запуск. Создание ярлыка для нужной программы не занимает более 2-х минут и это позволит избавиться от лишних действий в дальнейшем. Запускаем планировщик заданий (Пуск ---> Все программы ---> Стандартные ---> Служебные ---> Планировщик заданий ) и нажимаем "Создать задачу ":

Указываем Имя для новой задачи и ставим флажок "Выполнять с наивысшими правами ":

Переходим на вкладку Действия , нажимаем "Создать ", в следующем окне нажимаем "Обзор ":

Указываем путь к нужному приложению и нажимаем "Открыть ":


Увеличить рисунок

Нажимаем "ОК ":

Закрываем планировщик и переходим к созданию ярлыка.

Чтобы создать ярлык на рабочем столе, щёлкаем правой клавишей мыши, выбираем "Создать " ---> "Ярлык ":

В поле Расположение объекта вводим:

Schtasks /run /tn cmd_admin

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

Задаём название ярлыка:


Увеличить рисунок

Ярлык создан и готов к использованию.

Чтобы сменить значок - нажмите правой клавишей мыши по ярлыку, выберите "Свойства ":

Перейдите на вкладку "Ярлык "и нажмите "Сменить значок ":

"Обзор ..."

Указываем путь к программе:


Увеличить рисунок

Выбираем нужный значок и закрываем оба окна кнопкой "ОК ":

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

Утилита для автоматизации "Способа №4"

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

Работа с утилитой сводится к двум простым шагам:

  • Установка
  • Перетаскивание исполняемого файла (*.exe, *.bat, *.cmd) на ярлык утилиты:

Автоперевод фокуса на запущенную программу

Специфика запуска приложений из планировщика состоит в том, что фокус на окно не переводится и, например чтобы набрать команду в командной строке приходится дополнительно щёлкать по окну. Такое поведение может помочь в автоматизации рутинных операций по расписанию, но для "Способа №4" это не всегда удобно.

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

Добавляем при создании задачи:

Использование команды start

Программа или сценарий:

Аргументы:

/c start /d "путь_к_программе" имя_файла.exe

/c start /d "C:\Windows\System32\" cmd.exe

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

Программа или сценарий:

Путь_к_nircmd\nircmd.exe

Аргументы:

Exec show "путь_к_программе\имя_файла.exe"

Exec show "C:\Windows\System32\cmd.exe"

Запуск диалога "Выполнить" от имени администратора

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

При создании задачи в планировщике, в окне "Создание действия " укажите:

в поле "Программа или сценарий ":

Rundll32

в поле "Добавить аргументы ":

Shell32.dll,#61

Скачиваем утилиту, распаковываем. Запускаем командную строку, вводим нужную команду, синтаксис совсем нехитрый:

<путь к утилите> <путь к нужному приложению>

Выведется запрос UAC и приложение запустится от имени администратора.

Примечание: В контекстном меню Windows 7 есть очень удобная функция копирования пути файла: зажмите Shift , щёлкните правой клавишей мыши по файлу, выберите пункт "Копировать как путь ".

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

Важно! Этот способ небезопасен, так как позволяе пользователю с ограниченными правами запускать код с полными правами. Хитрый пользователь или вредоносное ПО могут этим воспользоваться и скомпрометировать систему.

Рассмотрим ещё одну интересную задачу: Ваша учётная запись Windows входит в группу администраторов, есть ещё одна или несколько учётных записей, входящих в группу пользователей. Пользователю необходимо запускать программу, требующую повышения прав. Обычно это выглядит так: пользователь нажимает правой клавишей мыши по файлу и выбирает "Запуск от имени Администратора", при этом выводится запрос на ввод пароля администратора:

Разумеется, раздать пользователям пароль администратора - не самая хорошая идея. Чтобы это "обойти" будем использовать утилиту AdmiLink Алексея Курякина. С её помощью администратор может создать для пользователя ярлык на запуск необходимой программы, при этом ввод пароля администратора требуется всего 1 раз - при создании ярлыка. Во время запуска программы пользователем пароль будет передаваться в зашифрованном виде.


Этот способ будет работать, если запуск программы возможен только от имени администратора и разработчик не забыл указать это условие в манифесте . Однако ещё остаётся большое количество старых программ или программ, запуск которых возможен как в обычном режиме, так и от имени администратора (при этом будет доступен разный набор функций). При попытке запуска такой программы с помощью AdmiLink - она запускается в обычном режиме (без административных привилегий). А если попытаться проставить флажок "Способом №3 . Оригинальный стиль автора сохранен.