Недавно я получил от одного из моих читателей письмо с вопросом, существует ли более удобный способ повышения прав при запуске сценариев в Microsoft Windows Vista. По его мнению, единственный существующий способ категорически неудобен и сводит на нет все преимущества сценария как средства автоматизации задач.
Прочитав это письмо, я осознал, что до сих пор не рассказывал о пакете утилит Elevation PowerToys for Windows Vista, предназначенном как раз для решения этой проблемы. Так что в этой статье я исправлю свое упущение и объясню, как пользоваться этими утилитами для более эффективного выполнения сценариев с повышением прав.
Не все сценарии требуют повышения прав
Прежде чем приступить к рассказу об Elevation PowerToys, хочу уточнить: не все сценарии требуют повышения прав — только те, которые направлены на выполнение задач, провоцирующих Контроль учетных записей пользователей Vista. Повышение прав необходимо для запуска приложений или сценариев, изменяющих принцип работы операционной системы или влияющих на учетные записи других пользователей. Для повышения прав большинство приложений автоматически запускает UAC, и пользователь получает предложение подтвердить операцию или ввести административный пароль.
Соответственно, приложения и сценарии, не затрагивающие основных принципов функционирования системы, могут выполняться со стандартными привилегиями. К примеру, в марте 2008 года я опубликовал три HTML-приложения, которые можно запускать с обычными правами, в статьях «Скрытые настройки заставки "Мыльные пузыри" в Windows Vista» (Unlocking the Bubbles Screen Saver’s Hidden Settings in Vista) и «Скрытые настройки заставок "Ленты" и "Геометрический вальс" в Windows Vista» (Unlocking the Ribbons and Mystify Screen Savers’ Hidden Settings in Vista). Как известно, HTML-приложения, или просто HTA, представляют собой сценарии, написанные с использованием HTML, Windows Script Host и VBScript или Jscript.
PowerToys
К счастью, Майкл Марголо (Michael Murgolo), старший инфраструктурный консультант отдела консалтинга Microsoft, признал, что отсутствие в Vista удобного способа выполнения сценариев с повышением прав — это упущение, и создал пакет утилит Script Elevation PowerToys for Windows Vista. Почитать об утилитах подробнее и загрузить пакет можно на сайте Microsoft TechNet.
Скачав пакет «Elevation2008_06.exe», достаточно запустить его двойным щелчком. Появится диалоговое окно «TechNet Magazine Sample Code», показанное на рис. A, с предложением выбрать папку для распаковки всех включенных в пакет файлов. Обратите внимание — при распаковке ни одна из утилит установлена еще не будет.
Рисунок A. При запуске файла пользователю предлагается выбрать папку для распаковки.
После распаковки на диске появится папка «Elevation», содержащая в себе набор файлов «.INF». Можно выбрать для установки любой из них, а можно установить сразу все утилиты, воспользовавшись файлом «InstallAllPowerToys.cmd». Если вам не приходится регулярно запускать сценарии разных типов, можно ограничиться только установкой самых нужных утилит. Подробнее читайте в файле «Readme.txt»
Установка PowerToy
Установить любую из утилит Script Elevation PowerToys очень легко. Предположим, вы вам нужна утилита для запуска файлов «.HTA» с повышенными правами. Нажмите правой кнопкой на файле «ElevateHTA.inf» и выберите опцию «Установить» (Install), как показано на рис. B.
Рисунок B. Чтобы установить утилиту Elevate HTML Application PowerToy, нажмите на файле «ElevateHTA.inf» правой кнопкой мыши и выберите опцию «Установить» (Install).
После установки Elevate HTML Application PowerToy в контекстном меню для файлов HTA появится опция «Запуск от имени администратора» (рис. C). При выборе этой опции придется подтвердить продолжение операции в окне UAC. После этого приложение HTA сможет нормально выполнять поставленные перед ним задачи.
Рисунок C. Чтобы запустить сценарий HTA, требующий повышения прав, достаточно нажать на нем правой кнопкой мыши и выбрать опцию «Запуск от имени администратора».
Удаление утилит PowerToy
Удалить любую из утилит Script Elevation PowerToys так же просто, как установить. Делается это с помощью служебного приложения «Программы и компоненты» (Programs and Features) в Панели управления (Control Panel). К примеру, после установки Elevate HTML Application PowerToy в «Программах и компонентах» появляется соответствующий пункт (рис. D).
Рисунок D. Удалить любую из утилит Script Elevation PowerToys можно с помощью служебного приложения «Программы и компоненты».
А если установить все утилиты Script Elevation PowerToys сразу, для их массового удаления можно будет воспользоваться файлом «UninstallAllPowerToys.cmd».
А что думаете вы?
Случалось ли вам сталкиваться с проблемой запуска сценариев в Vista? Пользуетесь ли вы Script Elevation PowerToys? Если да, то каковы ваши впечатления? Поделитесь своим мнением в комментариях!