Корпорация Microsoft недавно выпустила третью ознакомительную версию PowerShell 2.0. Она значительно усовершенствована по сравнению с предыдущей и дает все основания надеяться, что PowerShell 2.0 в конечном итоге превратится в надежный инструмент системного администрирования, располагающий богатым набором функций уровня предприятия, которые так актуальны для многих организаций. В этой статье Скотт Лоу (Scott Lowe) рассказывает об основных особенностях новой версии.
Хотя версия 2.0 знаменитого языка сценариев Microsoft PowerShell не дошла еще даже до бета-тестирования, разработчики на днях выпустили уже третью ознакомительную версию оболочки. Хочу уточнить: ознакомительная версия – это ни в коем случае не бета. Она предназначена, как и следует из названия, только для ознакомления с новой технологией, а потому может существенно отличаться от окончательной версии по функциональности. Microsoft особо подчеркивает, что ознакомительные версии не предназначены для повседневного использования и могут иметь радиальные отличия от конечного продукта. Короче говоря, не стоит строить свои расчеты исходя из ознакомительной версии, а потом жаловаться, что расчеты не оправдались.
Что нам готовит PowerShell 2.0?
PowerShell 2.0 предлагает богатый набор новых функций, призванных сделать эту версию более мощной и простой в обращении, чем PowerShell 1.0. Ниже я расскажу об основных преимуществах новой версии.
ISE
Самое заметное отличие PowerShell 2.0 от предыдущей версии – наличие интегрированной среды построения сценариев Windows PowerShell (Integrated Scripting Environment, ISE). ISE – это утилита с графическим интерфейсом, которая делает процесс создания и изменения сценариев PowerShell намного проще и удобнее. Разумеется, для этого существуют и приложения сторонних производителей вроде PowerGUI от Quest, но все-таки приятно, что теперь и разработчики PowerShell взялись за дело.
Снимок PowerShell 2.0 ISE
Удаленная работа
В PowerShell 2.0 значительно расширены возможности применения сценариев PowerShell к удаленным системам. Если коротко, администратор получает возможность со своего собственного компьютера направлять команды PowerShell, которые выполняются на удаленных станциях и выводят результаты на экран администратора. Разумеется, для этого на удаленных системах тоже должен быть установлен PowerShell. Прелесть PowerShell 2.0 в том, что удаленные пользователи не видят визуальных признаков выполнения процессов PowerShell – они отражаются только в Диспетчере задач (Task Manager). Согласитесь, если бы посреди рабочего дня на компьютерах ничего не подозревающих удаленных пользователей вдруг ни с того, ни с сего начали бы выскакивать окна непонятных приложений, существование отдела технической поддержки превратилось бы в ад!
Фоновый режим
При внимательном рассмотрении функции удаленного выполнения команд PowerShell 2.0 становится понятным, что все эти команды работают в фоновом режиме незаметно для пользователей. Администратор получает возможность создавать сценарии, которые будут выполняться в фоне, в то время как он сам может продолжать работу в новом окне PowerShell. Позже администратор собирает все полученные в фоновом режиме результаты. Возможность выполнять команды в фоне (асинхронно) позволяет администратору продолжать работу, не дожидаясь завершения выполнения запущенных сценариев.
Транзакции
PowerShell 2.0 позволяет создавать сценарии на основе транзакций с использованием командлетов для запуска, выполнения и отмены транзакций в случае ошибки или при любых других условиях. Эта функция делает PowerShell удобным инструментом для выполнения сложных деловых процессов, поскольку гарантирует, что при необходимости данные можно будет вернуть в исходное состояние.
Многострочные комментарии
В первой версии PowerShell добавлять многострочные комментарии вручную (без помощи PowerGUI) было чрезвычайно утомительно, поскольку каждая строка комментария должна была начинаться с символа #. Выпустив этот символ в одной из строк, можно было загубить весь сценарий. В PowerShell 2.0 используются элементы сценария , между которыми можно вставлять многострочные комментарии любой длины. На первый взгляд, усовершенствование незначительное, но функции облегченной обработки многострочных комментариев есть во всех приличных языках сценариев и программирования.
Новые командлеты, параметры, переменные и операторы
Поскольку PowerShell 2.0 – это новая полномасштабная версия языка, в нее включено множество новых командлетов, новых параметров для уже существующих командлетов, новых переменных и операторов. Например, операторы -Split и -Join позволяют при определенных условиях разбивать или объединять строки. Появились новые командлеты для обслуживания транзакций (Start-PSTransaction, Undo-PSTransaction) и задач, выполняемых в фоновом режиме (Start-PSJob, Stop-PSJob), а также для поддержки новых функций отладки PowerShell 2.0 (Set-PSBreakpoint, Get-PSBreakpoint). У старых командлетов, как я уже упоминал, появились новые параметры. Например, у Stop-Process — параметр -force, а у Export-Csv – параметр -Delimiter, позволяющий указать символы для применения. Большинство новых командлетов и параметров предназначено для обслуживания новых функций PowerShell, но многие из них были введены для того, чтобы сделать язык в целом более надежным.
Заключение
PowerShell 2.0 находится в разработке уже давно, и судя по третьей ознакомительной версии, этот замечательный язык сценариев движется в правильном направлении.