Нет никаких сомнений в том, что будущее в области создания административных сценариев Windows — за технологией Windows PowerShell. Компания Microsoft адаптировала оболочку PowerShell в качестве среды разработки сценариев для множества своих продуктов, в том числе для System Center Virtual Machine Manager (VMM) 2008, Windows Server 2008 R2, Exchange Server 2007, а также для Exchange Server 2010. Тем не менее в прошлом возможности средств разработки сценариев PowerShell были значительно скромнее, чем возможности средств разработки сценариев на других языках. Например, только недавно разработчики сценариев PowerShell получили возможность работать с цветовым разделением синтаксиса, при этом им по-прежнему не хватало таких важных механизмов, как проверка законченности выражений и средства отладки. Многое изменилось за последний год, и редакторы сценариев, появившиеся на рынке в этот период, представляют собой полнофункциональные среды разработки на языке PowerShell. В данном обзоре я подробно рассмотрю два редактора сценариев PowerShell: Admin Script Editor (ASE) 3.6 компании iTripoli и PrimalScript 2009 компании SAPIEN Technologies. В таблице сравниваются возможности данных продуктов. Дополнительную информацию о других редакторах сценариев PowerShell можно найти во врезке «Другие средства разработки сценариев PowerShell».
Критерии оценки
Современные редакторы должны соответствовать нескольким критериям. Они должны поддерживать неограниченное число выполнений команд «отмена» и «повтор», а также иметь грамотно составленный файл справки для широкого диапазона языков разработки сценариев. Вдобавок к поддержке различных языков разработки желательно, чтобы в редакторе была возможность использовать средства редактирования кода (например, выделенные цветом ключевые слова) и шаблоны для создания распространенных кодовых структур (например, для создания циклов For… Next и общих объектов).
Другой важный фактор — поддержка проверки завершенности кода по аналогии с IntelliSense в Visual Studio, где редактор позволяет в интерактивном режиме вызывать раскрывающиеся меню, содержащие методы и свойства объекта. Также важна возможность организовывать файлы в проекты и открывать множество файлов в различных окнах. Функция редактирования блоков кода — еще одна удобная возможность. И наконец, хорошая среда разработки должна обеспечивать возможность отладки сценариев посредством назначения точек прерывания, пошагового выполнения кода, а также просмотра и редактирования содержимого переменных.
Чтобы оценить соответствие продуктов ASE и PrimalScript 2009 указанным критериям, я использовал их для редактирования и отладки набора сценариев PowerShell, состоящего из нескольких файлов. В прошлом я использовал данный набор для сравнения параметров продуктов и тестирования нескольких отдельных утилит PowerShell.
ASE от iTripoli
Редактор ASE изначально представлял собой редактор сценариев на языке VBScript, однако в дальнейшем его возможности были расширены, когда была обеспечена поддержка языка PowerShell. Помимо PowerShell и VBScript, данный продукт позволяет работать с языком командной оболочки Windows (файлы .bat и .cmd), а также с языками Active Server Pages (ASP), AutoIt, KiXtart, HTML, HTML Application (HTA), XML, XML Schema Definition (XSD) и Extensible Style Language (XSL). Кроме того, вы можете использовать данный редактор для работы с файлами .ini и .reg. Редактор ASE имеет встроенную поддержку механизма отладки сценариев PowerShell и технологии Microsoft.NET Framework 3.51, а в его состав входит 75 новых шаблонов Logon Script Builder и цветовые схемы с возможностью пользовательской настройки.
Редактор ASE запускается в любой системе Windows, начиная с Windows 2000, и требует для работы установленного инструментария .NET Framework 2.0. Однако версия ASE 3.6 не работает в системах Windows 7 (что усложнило тестирование, ведь я использую как раз Windows 7) и Windows Server 2008 R2. Поддержка Windows 7 и Server 2008 R2 будет реализована в новой версии ASE.
Установка и редактирование. Установка пакета ASE интуитивно понятна и занимает меньше минуты. После завершения процесса установки пользователю предлагается немедленно запустить приложение. Редактор ASE имеет интерфейс со множеством вкладок, показанный на экране 1. Значки на панели инструментов оказались нестандартными, и их внешний вид мне не очень понравился, однако к ним легко привыкнуть.
Редактирование отдельных сценариев не вызвало никаких сложностей — редактор ASE располагает практически всеми основными возможностями для работы со сценариями, которые могут понадобиться. ASE представляет собой полнофункциональный редактор, позволяющий выполнять неограниченное число операций «отмена» и «повтор», поддерживающий механизм цветового разделения синтаксиса и механизм проверки завершенности кода, работающий по аналогии с оболочкой IntelliSense. По умолчанию редактор выделял номера строк, которые могли бы пригодиться при отладке сценариев PowerShell. Удобная функция ChangeLog поможет отслеживать изменения, вносимые в документ сценария. Щелчок правой кнопкой мыши на любой команде инициирует вывод файла справки для данной команды внизу экрана.
К сожалению, редактор ASE не смог работать с форматированием, в котором были записаны мои сценарии PowerShell, — он постоянно пытался отрегулировать отступы в моем коде, так чтобы сценарий соответствовал формату, определенному приложением. ASE не поддерживает блочное редактирование, а также не позволяет работать с проектами, состоящими из нескольких файлов.
Создание новых сценариев. Встроенные средства редактора ASE упрощают создание новых сценариев. Набор вертикальных вкладок в правой части экрана обеспечивает доступ ко множеству мастеров, которые могут помочь в написании кода PowerShell. В состав редактора входят следующие мастера: ADSI Wizard, Database Wizard, Script Wizard, WMI Wizard и XML Wizard. Кроме того, вы можете интегрировать в редактор дополнительные мастера, такие как Registry Wizard и Uninstall Wizard. Эти мастера многофункциональны и чрезвычайно эффективны: они могут существенно сократить время, необходимое для написания нового сценария. От вас требуется лишь указать операцию, которую необходимо выполнить, а мастер самостоятельно создаст код PowerShell в окне редактора. Кроме того, мастера поддерживают работу с языком VBScript.
Хотя мастера службы ASE могут очень пригодиться тем администраторам Windows, которые не знакомы с различными библиотеками объектов, существует одно досадное неудобство. Оказалось, что очень просто случайно закрыть окна мастера, и при этом нет способа вернуться к установкам, заданным по умолчанию.
В состав редактора ASE входит модуль ScriptBits — небольшой набор шаблонов кода на языках PowerShell, VBScript и KiXtart. Вы можете создавать собственные шаблоны ScriptBits и добавлять их во встроенную библиотеку ASE.
Запуск и отладка. При первом запуске некоторых сценариев я неожиданно получил сообщение об ошибках подписи. По умолчанию настройки подписывания были установлены в состояние Restricted. ASE не позволял мне изменить данные настройки до тех пор, пока я не перезапустил его, используя режим Run as administrator. После внесения изменений в настройки приложение ASE выполняло сценарии PowerShell именно так, как я и ожидал. Выходные данные сценариев были выведены на панель Output, размещенную в нижней части окна редактирования.
Редактор ASE имеет мощный механизм отладки. Щелчок мышью на значке Active Debugger запускает отладчик сценариев PowerShell. Панель отладки, представленная в нижней части экрана 1, отображает значение локальных переменных, выходных данных сценариев, видимых переменных, а также значения стека вызовов. Отладчик позволяет указывать множество точек прерывания, щелкая мышью по правой границе окна редактирования. Наведя указатель мыши на переменную, вы сможете увидеть ее значение.
Дополнительные возможности. В связи с появлением в свободном доступе оболочки Windows PowerShell Integrated Scripting Environment (ISE) от компании Microsoft и других бесплатных редакторов сценариев PowerShell, возможности новых средств разработки должны выйти за рамки стандартных возможностей редактирования и отладки. Редактор ASE предлагает множество таких функций. Особенно мне понравился встроенный инструмент ScriptForm Designer. Он позволяет объединять в простой графической оболочке как сценарии PowerShell, так и сценарии VBScript. Данное средство может существенно повысить удобство использования сценариев, предоставив для них пользовательский интерфейс.
Еще одной интересной функцией редактора ASE является возможность упаковывать сценарии в исполняемые файлы-контейнеры. Кроме того, в службе ASE реализованы поддержка подписывания кода и механизм сравнения файлов.
Редакции. Существует три редакции службы ASE: Standard Edition (99 долл.), Professional Edition (199 долл.) и Enterprise Edition (299 долл.). В состав версии Standard Edition входят основные механизмы редактирования и мастера генерации кода. В Professional Edition добавлены механизмы отладки, упаковки сценариев и инструмент Logon Script Builder. Редакция Enterprise Edition, помимо названных выше компонентов, включает консоль развертывания сценариев, расширенный механизм формирования запросов, а также инструмент ScriptForm Designer. С продуктом не поставляется руководство пользователя, так что вы можете рассчитывать только на онлайн-поддержку. Загрузить пробную 45‑дневную версию редакции ASE Enterprise Edition можно по ссылке: www.adminscripteditor.com/editor/download.asp.
В целом я считаю службу ASE отличным редактором сценариев PowerShell. К сожалению, данный редактор не может работать в системе Windows 7. Основное достоинство ASE заключается в его дополнительных возможностях, таких как мастера настройки, упаковщик пакетов и инструмент ScriptForm Designer.
PrimalScript 2009 от SAPIEN
Редактор PrimalScript 2009 — это редактор сценариев VBScript, в котором компания SAPIEN реализовала поддержку сценариев PowerShell. Среди новых возможностей пакета PrimalScript 2009 стоит отметить инструмент Object Browser, встроенные подключения к ресурсам MSDN и Google, интегрированную командную строку, поддержку запуска сценариев с повышенными привилегиями и поддержку системы Windows 7. Кроме того, PrimalScript 2009 поддерживает следующие операционные системы: Windows Server 2008, Windows Vista SP1, Windows Server 2003 и Windows XP SP2. Рекомендуется, чтобы система имела как минимум 1 Гбайт оперативной памяти и в ней были установлены пакеты .NET Framework и Windows PowerShell.
Редактор PrimalScript 2009 позволяет работать более чем с 50 языками, включая PowerShell, VBScript, JScript, командную оболочку Windows (.bat и .cmd), Visual Basic.NET, ASP.NET, Java, Adobe Flex, Perl, HTML и XML.
Установка и редактирование. Установка PrimalScript 2009 проста и занимает меньше минуты. PrimalScript представляет собой редактор с несколькими окнами (экран 2). Разобраться в работе редактора оказалось несложно. Интерфейс сильно напоминает внешний вид редактора Visual Studio, и в целом он понравился мне больше, чем интерфейс ASE.
PrimalScript представляет собой полнофункциональный редактор с неограниченным числом выполнений операций «отмена» и «повтор», цветовым разделением синтаксиса кода и функцией проверки завершенности кода PrimalSense. Мне очень понравилась функция Clipboard Ring, которая позволяет копировать несколько секций кода в буфер обмена и потом выборочно вставлять различные секции в различные точки сценария.
По умолчанию редактор PrimalScript отображает номера строк. Нажав клавишу F1 в тот момент, когда ваш курсор находится над любой из команд PowerShell, вы вызовете справочную панель для данной команды в нижней части рабочей области редактора. Данный редактор не поддерживает копирование и вставку блоков кода, но позволяет работать с проектами, состоящими из нескольких файлов. Однако на самом деле меня не сильно волнует, каким образом проекты распределяются между рабочими областями. Я считаю, что данный механизм является избыточным и не очень полезным. Куда больше заслуживает внимания удобная функция редактора PrimalScript под названием Find in Files, которая позволяет осуществлять поиск текстовой строки в нескольких файлах, что может очень пригодиться при работе с проектами, состоящими из нескольких файлов.
Создание новых сценариев. Редактор PrimalScript имеет менее широкий набор мастеров, служащих для создания новых редакторов PowerShell, по сравнению с пакетом ASE. В пакете PrimalScript доступны следующие мастера: ADO Wizard, ADSI Wizard, Logon Script Wizard и WMI Wizard. Однако эти мастера создают код на языках VBScript или Jscript, а не на языке PowerShell. Редактор PrimalScript содержит большой набор фрагментов и примеров кода на языке PowerShell и многих других поддерживаемых языках.
Запуск и отладка. Запуск сценариев в редакторе PrimalScript прошел без осложнений. Мне не пришлось изменять настройки подписывания кода. Выходные данные каждого сценария отображались в окне Output, которое вы можете увидеть в нижней части экрана 2.
Функции, предлагаемые редактором PrimalScript для отладки сценариев PowerShell, не выходили за рамки базовых возможностей, но оказались вполне достаточными. К сожалению, щелчок мышью на полях не привел к ожидаемому результату в виде создания точки прерывания. Вместо этого мне пришлось переключаться между точками прерывания с помощью клавиши F9. Исполнение сценариев в режиме отладки работает без ошибок, проблем с подписями или другими параметрами не возникает. Функция Set Arguments позволяет задать значения аргументов командной строки для отлаживаемого сценария. Отладчик позволяет осуществлять пошаговое выполнение, при этом значения переменных сценария отображаются в окне Variables. Возможности изменения значений переменных и просмотра значения переменной путем наведения на нее курсора мыши отсутствуют.
Дополнительные возможности. Дополнительные возможности редактора PrimalScript оказались не такими широкими, как возможности службы ASE. Редактор PrimalScript предлагает функцию Script Package, которая позволяет упаковать сценарий в исполняемый файл-контейнер. Кроме того, редактор PrimalScript может быть интегрирован с такими системами управления версиями, как Microsoft Visual SourceSafe или SAPIEN ChangeVue. Помимо этого, в состав пакета входят встроенные механизмы подписывания кода и сравнения файлов.
Редакции. В отличие от предыдущих версий пакета PrimalScript, для которых выпускалось множество редакций, ставящее клиентов в тупик, редактор PrimalScript 2009 выпускается в единственном варианте. Мне кажется, что это правильный шаг. Для редактора PrimalScript 2009 предлагается полная онлайн-поддержка, однако некоторые темы, например использование фрагментов кода, недостаточно освещены в справочных материалах. Более полное руководство предоставляется вместе с продуктом в виде файла PDF. Вы можете скачать полнофункциональную 45‑дневную пробную версию пакета PrimalScript 2009 по ссылке www.primaltools.com/products/info.asp? p=PrimalScript.
Выбор редактора. Оба рассматриваемых редактора великолепны и разрывают все ограничения, связывающие нас при создании сценариев PowerShell с помощью редактора Notepad. Однако, на мой взгляд, победителем состязания должен стать редактор PrimalScript 2009. Интерфейс PrimalScript понравился мне больше. Хотя данный пакет имеет менее функциональные средства генерации кода, он обеспечивает поддержку работы с проектами и содержит широкий набор фрагментов кода, а механизмы отладки (хотя и предоставляют только базовые возможности) вполне работоспособны. Вместе с тем стоит заметить, что я опытный разработчик, создающий приложения и сценарии в течение нескольких лет, и, соответственно, знаком со множеством технологий и языков создания сценариев. Для администраторов Windows, не работавших с инструментами Windows Management Instrumentation (WMI), Active Directory Service Interfaces (ADSI) и PowerShell, возможно, более важным фактором станет наличие в редакторе ASE широкого набора мастеров создания кода (в том случае, если не требуется поддержка системы Windows 7).
Admin Script Editor (ASE) 3.6
ЗА: отличные механизмы редактирования, множество удобных мастеров генерации кода; наличие средства создания графических форм, механизм упаковки сценариев.
ПРОТИВ: не поддерживается работа с проектами, настройки отступов редактора не соответствуют настройкам текущего документа, не поддерживается система Windows 7.
ОЦЕНКА: ★ ★ ★ ★ ☆
ЦЕНА: 99 долл. (Standard Edition); 199 долл. (Professional Edition); 299 долл. (Enterprise Edition).
РЕКОМЕНДАЦИИ: отличный выбор для администраторов, которым нужна среда разработки сценариев PowerShell при условии, что поддержка системы Windows 7 не требуется.
КОНТАКТНАЯ ИНФОРМАЦИЯ: iTripoli, www.itripoli.com.
PrimalScript 2009
ЗА: эффективные механизмы редактирования, широкая языковая поддержка, простые механизмы выполнения и отладки сценариев, наличие механизма упаковки сценариев.
ПРОТИВ: отсутствует возможность назначения точек разрыва с помощью мыши, неполные справочные материалы в службе онлайн-поддержки, мастера не могут генерировать код на языке PowerShell.
ОЦЕНКА: ★ ★ ★ ★ ☆
ЦЕНА: 299 долл.
РЕКОМЕНДАЦИИ: великолепный редактор сценариев, особенно полезный в случаях, когда необходимо работать со множеством различных языков.
КОНТАКТНАЯ ИНФОРМАЦИЯ: SAPIEN Technologies, www.sapien.com.
К моменту публикации данного обзора на рынке должны появиться продукты PowerShell Plus 3.1 компании Idera и PowerGUI Pro MobileShell Edition компании Quest Software, которые также являются платными редакторами сценариев PowerShell. Последние версии этих продуктов еще не были доступны к моменту написания обзора. Дополнительную информацию о редакторе PowerShell Plus 3.1 можно найти на сайте www.idera.com/Products/PowerShell/PowerShell-Plus. Чтобы получить дополнительную информацию о редакторе PowerGUI Pro MobileShell Edition, обратитесь к статье dmitrysotnikov.wordpress.com/2010/01/12/mobileshell-powershell-prompt-in-a-browser.
Кроме того, существует множество весьма эффективных бесплатных редакторов сценариев. Среди них стоит отметить новый продукт компании Microsoft под названием Windows PowerShell Integrated Scripting Environment (ISE), а также пакеты PowerGUI и PowerShell Analyzer от Shell Tools.
Windows PowerShell ISE
Редактор Windows PowerShell ISE является частью пакета Windows PowerShell 2.0, появившегося в составе операционных систем Windows Server 2008 R2 и Windows 7. Кроме того, 32-разрядную и 64-разрядную версии PowerShell 2.0 можно загрузить с сайта Microsoft (support.microsoft.com/kb/968929) для других операционных систем Windows. Редактор Windows PowerShell ISE предоставляет интерфейс с несколькими вкладками и цветовым разделением синтаксиса. PowerShell ISE не имеет механизма проверки завершенности кода, а также встроенных фрагментов кода, однако позволяет осуществлять отладку сценариев PowerShell.
PowerGUI
Пакет PowerGUI был первым популярным графическим редактором сценариев PowerShell. Компания Quest Software изначально занималась развитием идей PowerGUI, но в дальнейшем приняла решение распространять данный пакет бесплатно. Редактор PowerGUI имеет интерфейс с несколькими вкладками, механизм интерактивных запросов в стиле IntelliSense, набор фрагментов кода и встроенный отладчик. Я использовал редактор PowerGUI во многих своих проектах, связанных с написанием сценариев PowerShell. Дополнительную информацию о пакете PowerGUI можно найти в статье «Features of PowerGUI Script Editor» (http://www.windowsitpro.com/article/windows-powershell/features-of-powergui-script-editor.aspx). Вы можете загрузить редактор PowerGUI на странице www.powergui.org/downloads.jspa.
Shell Tools’ PowerShell Analyzer
Редактор PowerShell Analyzer от Shell Tools представляет собой другой тип средства разработки сценариев PowerShell. Данный редактор предоставляет графическую среду для редактирования и механизм проверки завершенности кода, но не имеет встроенного графического отладчика. Набор «визуализаторов», входящий в состав пакета PowerShell Analyzer, позволяет просматривать объекты, получаемые на выходе команд PowerShell. Вы можете загрузить редактор PowerShell Analyzer с сайта www.powershellanalyzer.com.