Windows PowerShell: Встречайте новую оболочку

OSzone.net » Microsoft » PowerShell » Windows PowerShell: Встречайте новую оболочку
Автор: Дон Джонс
Иcточник: TechNet Magazine
Опубликована: 17.04.2012

Новая оболочка Windows PowerShell уже в пути. Вообще-то, Microsoft уже выпустила предварительную версию для сообщества (CTP) оболочки Windows PowerShell v3, хотя финальный вариант версии 3 не увидит свет, пока не выйдет Windows 8. Эта оболочка также будет доступна в Windows 7 и Windows Server 2008 R2. Версию CTP можно установить на эти операционные системы.

CTP — отличный этап в процессе разработки, который позволяет начать экспериментировать с новой технологией Microsoft. Выгодно это и разработчикам, которые на основании отзывов пользователей могут корректировать разработку продукта. Вам что-то не нравится в синтаксисе? Скажите об этом. Вы хотите, чтобы новая функциональность делала что-то еще? Напишите об этом разработчикам.

О своем мнении о Windows PowerShell лучше всего писать на сайте Microsoft Connect, который используется все большим числом команд разработчиков продуктов. Иногда кажется, что отправляешь сообщения в никуда, потому что во многих случаях Microsoft не может сказать, что в компании происходит с информацией обратной связи, пока не выйдет следующая версия продукта. Но в команде Windows PowerShell действительно все это читают. Честно говоря, масса улучшений в версии 3 пришли с Connect.

CLI с графическим интерфейсом

Далее я расскажу лишь о нескольких интересных новинках в CTP. Новичкам всегда приходится тяжело в процессе освоения синтаксиса Windows PowerShell. Например, если они захотят получить список всех svchost-процессов, они попытаются использовать команду Get-Process –svchost, хотя правильный синтаксис Get-Process –name svchost.

Придется привыкать к использованию параметров. Вместе с тем, версии 3 есть новый командлет Show-Command, который делает прозрачнее выполняемые задачи. Выполните команду Show-Command “Get-Process” и в награду вы получите всплывающее окно, показанное на рис. 1.

*

Рис. 1. Новое диалоговое окно ясно показывает, куда и какую информацию надо вводить

Это значительно облегчает понимание, что и куда нужно вводить. Метки в интерфейсе соответствуют именам параметров командлета. Каждая вкладка представляет один из наборов параметров командлета, что позволяет различать отдельные параметры.

Если вы введете svchost (или другое искомое значение) в поле Name и щелкните кнопку, командлет будет запущен на выполнение. Но еще лучше скопировать команду в буфер обмена, чтобы увидеть, как правильно ее писать. Это замечательный инструмент для обучения.

Улучшенный редактор

Интегрированная среда разработки сценариев (ISE) в версии 3 также претерпела значительные изменения в лучшую сторону (рис. 2). Теперь поддерживается подстановка и завершение команд IntelliSense, всплывающие подсказки синтаксиса и многие другие приятные вещи. Есть панель встраиваемых модулей, представляющих дополнительные визуальные средства, например список стандартных команд. В целом улучшения не революционные, а скорее эволюционные, но они делают среду ISE более совершенной и удобной в работе.

*

Рис. 2. Значительно улучшенный оконный редактор в Windows PowerShell версии 3

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

В версии 2 невозможно найти команду средствами встроенной справочной системы. Также недоступны другие механизмы обнаружения нужной команды, пока вы не установите модуль, содержащий эту команду. Это сильно усложняет поиск дополнительных команд. В версии 3 оболочка автоматически ищет команды в модулях по указанным путям к модулям, а если быть точнее, то имеется в виду переменная среды PSModulePath.

Обратите внимание, что на рис. 2 присутствует команда Get-ADComputer, хотя модуль взаимодействия с ActiveDirectory не загружен. Если попытаться выполнить одну из этих незагруженных команд, Windows PowerShell незаметно загрузит ее в фоновом режиме.

Новый механизм обнаружения команд позволяет загружать все доступные модули в момент запуска оболочки. И это делается без ожидаемой в таком случае задержки или дополнительной нагрузки на память. Загружается только то, что вы используете, но по крайней мере теперь у вас есть возможность найти команды, которые не загружаются в память при запуске оболочки. Благодаря автообнаружению команд будет значительно проще осваивать ОС Windows Server 8, в составе которой будут поставляться сотни дополнительных команд в более чем 80 модулях.

Добро пожаловать в Веб

В версии 3 также появилась функциональность Windows PowerShell Web Access. Я полагаю, что ее будут называть PWA. Некоторые примеры того, как эта замечательная функциональность работает можно увидеть в блоге специалиста со званием MVP Йена Эгила Ринга (Jan Egil Ring).

В сущности это веб-сайт на основе IIS, который предоставляет доступную в Веб версию консоли оболочки. В нижней части окна находится поле, в которое можно вводить свои команды. Далее эти команды выполняются на веб-сервере. Веб-сайт также отлично работает со смартфонами. Даже поддерживается поддержка заполнения нажатием клавиши табуляции, что облегчает ввод команд с клавиатуры (что особенно полезно на iPhone).

Таким образом можно в своем центре обработки данных организовать что-то типа прокси Windows PowerShell. К нему можно будет в любой момент подключиться с любого устройства и выполнять команды. Так как все это располагается на IIS, поддерживаются все механизмы проверки подлинности IIS, в том числе Kerberos и CredSSP. Можно защитить передачу данных протоколом HTTPS.

Это означает, что можно организовать олицетворение учетных данных и команды будут выполняться от вашего имени, а не от имени ограниченной или слишком полномочной учетной записи. Эту функциональность можно было получить, только установив подключаемые модули сторонних разработчиков или самостоятельно модифицировав систему.

Существуют другие механизмы подключения к Windows PowerShell. К набору командлетов Windows PowerShell можно предоставить доступ через веб-службу на основе REST. Это облегчает использование таких командлет из веб-приложений и других приложений, даже на машинах с операционными системами, отличными от Windows.

Другие приятные новинки

В версии 3 много других приятных вещей — рабочие процессы, запуск заданий по времени или событию, упрощенный синтаксис определенных команд, а также более надежный механизм удаленного взаимодействия.  Синтаксис все еще находится на стадии развития, но в CTP есть масса примеров, которые позволяют быстро войти в курс дела. Надо просто нырнуть в это море полезной информации.


Ссылка: http://www.oszone.net/17629/PowerShell