Themes for Windows 8 - download free Windows 8 themes
Главная > Без вредных советов, Программы > Повышение привилегий открытого окна командной строки

Повышение привилегий открытого окна командной строки

14 Ноябрь 2011

То, чего мне всегда не хватало в Windows Vista и во всех её потомках - возможности открыть командую строку с правами Администратора там, где мне нужно. Я из тех параноиков, что не отключают UAC, и мне чертовски досадно, когда очередная команда, которую я набрал в консоли, внезапно отказывается работать без повышения привилегий.

Windows не позволяет открыть окно команд там, где вам хочется, от имени администратора. Вместо этого вы должны открыть окно команд из меню Пуск, набрав в поиске cmd.exe и нажав CTRL+SHIFT+Enter. Это быстро? Нет. Это удобно? Нет. Вам придется совершать дополнительные телодвижения, чтобы оказаться в той папке, которая вам нужна, потому как окно команд открывается в папке %windir%\system32.

Три месяца назад я решил изменить ситуацию. Нет, я не выключил Контроль учётных записей (я всегда считал подобные действия откровенной глупостью). Я открыл студию и написал с десяток строчек на до-диезе.

Проект  получил имя ELE. Восьмикилобайтный экзешник стал для меня панацеей в вопросе эскалации привилегий  командной строки.

Повышение привилегий открытого окна командной строки

Первая и основная задача, которую мне хотелось решить при помощи ELE - открытие окна cmd.exe из cmd.exe. Иными словами, я хотел открыть точно такое же окно, как то, которое было открыто сейчас, с тем же путём, и с историей команд.
К моему сожалению, эту задачку мне удалось решить лишь частично. Открыть окно команд от имени администратора в нужной папке - не проблема. Проблемой оказалось получение истории введенных пользователем команд. cmd.exe хранит их в своей памяти, они живут ровно сеанс работы окна команд, и как их считать из памяти, я не знаю.

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

ELE

Открытие окна команд с правами администратора из файловых менеджеров

Особенность ELE - открывать окно команд с правами администратора в текущей папке - может сослужить вам добрую службу и сэкономить время и нервы, если интегрировать её в ваш любимый файловый менеджер. Я покажу вам это на примере Проводника, Total Commander и Far.

 

Открытие окна команд с правами администратора из Проводника

 

Достаточно интегрировать ELE  в контекстное меню папки и фона папки (пустого, свободного от файлов пространства окна Проводника), и вы откроете командую строку от имени администратора в любой локации жесткого диска.
Твик реестра мог бы выглядеть так:

Код: Выделить всё
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\ele\command]
@="ele.exe"
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell]
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ele]
[HKEY_CLASSES_ROOT\LibraryFolder\background\shell\ele\command]
@="ele.exe"
[HKEY_CLASSES_ROOT\Directory\shell\ele\command]
@="cmd /c cd /d \"%1\" & ele /x"

Ну и, соответственно,  результат:

В один клик мышью.

 

Открытие окна команд с правами администратора из Total Commander

 

Просто перетащите ele.exe на тулбар этого файлового менеджера, и отредактируйте полученную кнопку, удалив путь запуска. Это необходимо, чтобы при запуске ele в качестве рабочей папки использовался путь в активной панели Total Commander.

ele в total commander

Нажав на эту кнопку, вы откроете текущую папку в командной строке с правами администратора.

Открытие окна команд с правами администратора из Far

 

Один из способов сделать подобный трюк в этом популярном файловом менеджере  - добавить ELE в пользовательское меню. Для это надо нажать F2, и затем нажать INS. В качестве команды следует ввести ele.exe.

Я повесил на ELE  хоткей E, таким образом, чтобы открыть окно командной строки от имени администратора в текущей папке, мне достаточно нажать F2 - e.

Ключи командной строки ELE

Их немного.

Код: Выделить всё
ele /?

Краткая справка по использованию

Код: Выделить всё
ele /x

При указании  опции /x ELE закрывает окно командной строки, из которого она была вызвана. Т.е. на экране остается только одно окно cmd.exe - то, что открыто с правами администратора.

Этот ключ появился по просьбе Вадима Стеркина, с которым я поделился идеей создания утилиты. Вадим проявил интерес к утилите и провёл активное её тестирование, в ходе которого и предложил добавить /x, дескать, бывает удобно что-то скопировать из "обычного" окна в высокопривигелированное. Скажу честно, у меня такой ситуации ни разу не было, и в своей повседневной деятельности я использую экзешник, который автоматически закрывает предыдущее окно, без дополнительных ключей. (Закрытие процесса-родителя, к слову, реализовано по аналогии с примером Саймона Мориера)

Код: Выделить всё
ele программа [параметры]

Запустить программу  от имени администратора. Например, Блокнот от имени администратора:

Код: Выделить всё
ele notepad.exe d:\text1.txt

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

Вы можете скачать ELE с моего Skydrive или с форума.