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

OSzone.net » Microsoft » Windows 7 » Маленькие хитрости » Упрощаем запуск приложений в Windows от имени администратора без отключения UAC
Автор: Morpheus
Иcточник: www.oszone.net
Опубликована: 30.10.2009

Некоторым приложениям для работы в 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.

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

*

Выражаю благодарность автору программы - 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 отображается)

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

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

Существует несколько нужных нам утилит: 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, но ввод пароля администратора не требуется.

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


Дополнительные сведения:


Статья опубликована в рамках конкурса "Наш выбор - Windows 7!". Оригинальный стиль автора сохранен.


Ссылка: http://www.oszone.net/10594/run_as_admin