ТЕХНОЛОГИЯ
Windows Automation (Scripting)

Что делать, если выбранный вами программный продукт соответствует вашим задачам на 90%, но ему не хватает одной существенной мелочи? Как интегрировать базу 1С с существующем сайтом компании, который хоть и написан «на коленке», тем не менее полностью вас устраивает? Почему системный администратор каждый день тратит половину своего рабочего времени на рутинные операции по обслуживанию существующих систем, вместо того чтобы приносить компании прибыль путём совершенствования процессов? Почему разработчики требуют месяц работ на добавление в решение возможности, которая будет нужна вам всего на неделю?

Ответом на все эти и многие другие возникающие в работе ИТ-специалистов вопросы часто оказываются сценарии (скрипты). Существует популярное заблуждение, что в среде Windows относительно плохо обстоят дела с автоматизацией задач, скриптами и командной строкой. Но хотя системы, основанные на Unix, действительно обладают многолетней форой в этом отношении, в последнее время Windows совсем не отстаёт от них. Связано это во многом с появлением Windows PowerShell.

Windows PowerShell

http://social.technet.microsoft.com/wiki/cfs-file.ashx/__key/communityserver-wikis-components-files/00-00-00-00-05/5315.powershell_2D00_logo.gifWindows PowerShell – расширяемое средство автоматизации от компании Microsoft, состоящее из оболочки командной строки (shell) и сопутствующего языка сценариев. PowerShell был впервые показан в 2003 году, и с тех пор стремительно развивается и становится всё более популярным. Windows PowerShell доступен для операционных систем Windows XP/2003 и выше, а начиная с Windows 7/2008, он является встроенным компонентом операционной системы. PowerShell продолжает совершенствоваться, и новые версии получают всё больше возможностей, при этом сохраняя совместимость со сценариями и модулями, созданными для предыдущих версий.

Windows PowerShell построен на базе Microsoft .NET Framework и интегрирован с ним. Дополнительно PowerShell предоставляет удобный доступ к интерфейсам COM, WMI и ADSI, равно как и позволяет выполнять обычные команды командной строки, чтобы создать единое окружение, в котором администраторы смогли бы выполнять различные задачи на локальных и удалённых системах и автоматизировать их.

Windows PowerShell также предоставляет механизм встраивания, благодаря которому исполняемые компоненты PowerShell могут быть встроены в другие приложения. Эти приложения затем могут использовать функциональность PowerShell для реализации различных операций, включая предоставляемые через графический интерфейс. Этот подход применён в Microsoft Exchange Server 2007 для реализации управляющей функциональности в виде командлетов PowerShell и графических утилит управления в виде оболочек PowerShell, которые вызывают необходимые командлеты. Таким образом, графический интерфейс управления находится поверх промежуточного слоя — PowerShell. Другие приложения Microsoft, включая Microsoft SQL Server 2008, System Center Operations Manager и System Center Data Protection Manager, также предоставляют доступ к своим интерфейсам управления через командлеты PowerShell.

Windows PowerShell ISE

Среди встроенных возможностей PowerShell, можно отметить следующие:

  • Обширная интегрированная обновляемая справочная система.
  • Легкое и удобное обнаружение необходимых команд.
  • Интегрированная графическая среда разработки с поддержкой IntelliSense.
  • Система автодополнения команд, параметров, переменных и почти всего остального, что приходится вводить в командной строке.
  • Интерактивный отладчик с возможностью подключения к удалённым системам.
  • Автоматическая загрузка доступных модулей при необходимости.
  • PowerShell Remoting – механизм подключения, выполнения команд и интерактивной работы на удалённых серверах, с использованием безопасных протоколов и методов аутентификации.
  • Фоновые работы, в том числе на удалённых серверах и интеграция с планировщиком заданий.
  • Windows PowerShell Desired State Configuration – система для распространения и управления конфигурационной информации для служб и окружений.
  • Windows PowerShell WebServices – механизм для лёгкого создания соответствующих стандартам веб-сервисов на базе команд и сценариев PowerShell.
  • Windows PowerShell Workflow – возможность создания процессов на XAML или PowerShell.
  • Windows PowerShell Web Access – механизм удалённого доступа к консоли PowerShell через веб-браузер.
  • Поддержка в Windows PE (Preinstallation Environment) что существенно увеличивает возможности использования PowerShell при развёртывании или обслуживании операционных систем.
  • Автоматическая компиляция сценариев «на лету» для увеличения производительности.

http://blogs.technet.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-00-60-64-metablogapi/7026.pswa_2D00_safari_5F00_6878EEA5.png

Список продуктов и технологий, поддерживающих PowerShell и интегрированных с ним, постоянно расширяется. Относительно актуальные списки доступны по следующим ссылкам:

Если же продукта или решения нет в этих списках, это значит лишь то, что для интеграции с ним придётся воспользоваться возможностями PowerShell для работы с Microsoft .NET, WMI, COM и т.п.

Ну и в конце концов, в PowerShell удобно и приятно работать, что, в свою очередь, сказывается как на скорости его изучения, так и на скорости и качестве разработки сценариев на нём.

VBScript, CMD

Хотя PowerShell и является прекрасным инструментом, к сожалению, не всегда его использование доступно и целесообразно. Так, из-за своего относительно небольшого возраста он недоступен на операционных системах ниже Windows XP. Кроме того, часто получается так, что требуется поддержка или усовершенствование старых, испытанных, давно работающих сценариев. В таких случаях на помощью приходят Visual Basic Script и Windows Batch (CMD).

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

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

Дополнительная информация

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