22 ноября 2014 г.

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



Некоторым приложениям для работы в Windows 7 или Windows Vista требуются повышенные права, и запускать их необходимо от имени администратора. При этом выводится
запрос "Контроля учетных записей пользователя" (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) на ярлык утилиты:
*
Выражаю благодарность автору программы - hb860.

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

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

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

Программа или сценарий:
cmd.exe
Аргументы:
/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"

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

По аналогии с запуском командной строки способом №4 можно настроить запуск диалогового окна "Выполнить", и введённые в него команды также будут запущены от имени администратора. Удобство этого подхода заключается в том, что список ранее использованных команд сохраняется, и можно выбрать нужную из списка.
*
При создании задачи в планировщике, в окне "Создание действия" укажите:
в поле "Программа или сценарий":
rundll32
в поле "Добавить аргументы":
shell32.dll,#61
В справочнике по командам Windows вы найдете множество команд, которые можно запускать из командной строки или окна "Выполнить".

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

Все вышеперечисленное делается за 30 секунд. В качестве примера используется задание, запускающие окно "Выполнить". В командной строке, запущенной с правами администратора, выполните:
Schtasks.exe /Create /RL Highest /TN Run /SC ONCE /ST 14:00 /TR "cmd.exe /c start rundll32 shell32.dll,#61"
Теперь остается создать ярлык, прописав в нем команду:
schtasks /run /tn Run
Все!

Способ №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, но ввод пароля администратора не требуется.
Приятного использования!



Все в PDF е

Ярлыки:

Комментарии: 0:

Отправить комментарий

Коммент

Подпишитесь на каналы Комментарии к сообщению [Atom]

<< Главная страница