Меню Рубрики

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Далее запуск от имени администратора осуществляется двойным щелчком по ярлыку.

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

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

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

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

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

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

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

И ещё раз “ОК“:

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

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

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

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

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

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

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

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

Обзор. “

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

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

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

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

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

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

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

Выражаю благодарность автору программы – hb860.

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

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

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

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

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

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

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

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

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

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

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

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

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

В справочнике по командам Windows вы найдете множество команд, которые можно запускать из командной строки или окна “Выполнить“.

Быстрое создание задания в планировщике из командной строки

Все вышеперечисленное делается за 30 секунд. В качестве примера используется задание, запускающие окно “Выполнить”. В командной строке, запущенной с правами администратора, выполните:

Schtasks.exe /Create /RL Highest /TN Run /SC ONCE /ST 14:00 /TR “cmd.exe /c start rundll32 shell32.dll,#61”

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

Способ №5 – запуск из командной строки (запрос UAC отображается)

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

  • Запустить командную строку от имени администратора, введённые в неё команды также будут запущены от имени администратора.
  • Поставить в свойствах запускаемого приложения флажок – см. “Способ №3”.
  • Воспользоваться сторонней утилитой.

С первыми двумя вариантами всё понятно, займёмся последним.

Существует несколько нужных нам утилит: Elevate от Johannes Passing (рассмотрим на её примере), PowerToys от Michael Murgolo и т.д.

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

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

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

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

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

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

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

  1. Скачиваем, устанавливаем от имени администратора.
  2. Заходим в систему под пользователем, запускаем AdmiLink. Указываем путь к программе и, при необходимости, параметры командной строки.

    Увеличить рисунок
  3. Переходим на вкладку “Account“, указываем Имя учётной записи и пароль администратора. Нажимаем кнопку “Сгенерировать ключ запуска AdmiRun“.

    Увеличить рисунок
  4. Переходим на вкладку “LNK“, нажимаем “Сгенерировать командную строку“, затем “Создать Ярлык сейчас“.

    Увеличить рисунок
  5. Пользуемся.

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

Но нерешаемых проблем нет, я попробовал совместить запуск AdmiLink-ом и “Способ №5”:

– попытка завершилась успешно:

Пользователю выводится стандартный запрос UAC, но ввод пароля администратора не требуется.

Источник

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

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

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

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

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

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

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

Для примера возьмем утилиту редактирования реестра — 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 файл и конкретное приложение, достаточно указать путь к исполняемому файлу.

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

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

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]@=”Run as user without UAC elevation”
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]@=”cmd /min /C \”set __COMPAT_LAYER=RUNASINVOKER && start \”\” \”%1\”\””

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

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

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

set __COMPAT_LAYER=Win7RTM 640×480

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

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

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

Источник


Adblock
detector