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


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



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

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

Для запуска приложения от имени администратора можно воспользоваться несколькими способами:
Способ №1 - запуск через правую клавишу мыши (запрос UAC отображается)
Способ №2 - запуск с использованием "Ctrl+Shift+Enter" (запрос UAC отображается)
Способ №3 - устанавливаем запуск от имени администратора в свойствах ярлыка (запрос UAC отображается)
Способ №4 - упрощаем запуск для избранных приложений при помощи планировщика заданий (запрос UAC не отображается)
Утилита для автоматизации "Способа №4"
Автоперевод фокуса на запущенную программу
Запуск диалога "Выполнить" от имени администратора
Быстрое создание задания в планировщике из командной строки
Способ №5 - запуск из командной строки (запрос 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 раз - при создании ярлыка. Во время запуска программы пользователем пароль будет передаваться в зашифрованном виде.
Скачиваем, устанавливаем от имени администратора.
Заходим в систему под пользователем, запускаем AdmiLink. Указываем путь к программе и, при необходимости, параметры командной строки.

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

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

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

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



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


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


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



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

Приятного использования!

Комментарии

Популярные сообщения из этого блога

Права на папки и файлы (unix/chmod)

Автоматическое монтирование дисков и разделов в Linux или что такое fstab? Проблема Debian

Как подключить сетевой диск Windows в Linux