Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru

Расширяемая оболочка Windows PowerShell

Вполне вероятно, компьютерщики со стажем, те, кому нынче за тридцать, помнят операционную систему MS DOS и её аскетичную чёрную консоль. Это была программа, содержащаяся в файле command.com. Затем, в начале двадцатого века, наступила эпоха Windows NT, и командную строку начала предоставлять cmd.exe. Однако в компании Microsoft решили, что этого мало. И придумали оболочку Windows PowerShell, о которой пойдёт речь.

Суть простыми словами

Что такое командная строка? Это либо консоль, либо её эмулятор, запущенный внутри графической оболочки операционной системы. Там можно вводить разные команды, а также группировать их в сценарии, более известные как скрипты, — в пакетные файлы *bat, представляющие собой простенькие программки.

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

Так вот, парни из Microsoft вознамерились расширить функциональность командной строки, объединив её платформой .NET Framework. Ведь не секрет, что многие системные администраторы страсть как любят работать в консоли и запускать в ней всякое разное.

Так вот, в результате получилась оболочка Windows PowerShell, позволяющая управлять чем угодно, хоть сервером, хоть локальной сетью. Сие событие произошло в 2006-м году, когда была выпущена первая версия изделия. Продукт стал входить в комплект поставки ОС, начиная с Windows Server 2008 R2. Администраторы пришли в восторг, и софт начали встраивать в Windows 7 и, разумеется, в Windows 8.

Как это работает

Работает это как обычная командная строка, но только обвешанная дополнительными плюшками, с возможностью добавления новых.

Характерной особенностью предмета обсуждения являются так называемые командлеты (Cmdlets) общим количеством более сотни. Термин можно расшифровать, с учётом уменьшительного английского суффикса «let», как «крошечные команды». По аналогии с «апплет» — «маленькое приложение».

Среда исполнения — PowerShell Runtime, она же PSCmdlet. Там содержатся базовые классы с некоторыми стандартными методами, например, ProcessRecord(), EndProcessing() и BeginProcessing().

Для последовательной обработки объектов Cmdlet создаёт в среде PowerShell их экземпляры и при необходимости обращается к методам в классах PSCmdlet. Но не только к ним. Можно вызвать что угодно, поддерживающее .NET API и, естественно, написанное на языках программирования, используемых в .NET Framework.

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

И это ещё не всё. У PowerShell есть собственный API для разных операций. К примеру, метод WriteObject() передаёт объекты, получившиеся в результате тяжких трудов какой-нибудь функции, в конвейер для дальнейшей их обработки. А командлеты этот API используют для получения доступа к чему-либо далеко за пределами PowerShell. К дискам со всеми их директориями, к системному реестру, практически к любому хранилищу данных.

То есть, администратор, работающий в рассматриваемой оболочке, способен контролировать что угодно.

Конвейер и сценарии

Пожалуй, опытные пользователи заподозрили неладное, как только прочитали слово «конвейер». Возможно, даже воскликнули что-то вроде «Эй! Это же из Unix shell! Из оболочки Bash!»

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

Сценарии тоже продвинутые, поддерживающие ветвление (if, then, else), циклы (while, for, do), понимающие разные функции (иначе методы не вызывали бы), способные работать с переменными (у них перед именем ставится $, например, $args), ну и так далее.

Методы, стандартные для .NET, вызываются в двойных скобках с последующей парой двоеточий: [System.Console]::WriteLine("Hello, world!"). Командлет New-Object, как следует из его имени, создаёт новый объект, а свойства ему может назначать Add-Member.

В общем, есть возможность писать не простенькие скрипты, а вполне серьёзные программы, управляющие не менее серьёзной производственной системой. Но только сначала нужно в командлете Set-ExecutionPolicy разрешить выполнение сценариев.

Другие возможности

Если в конторе много компьютеров, то администратору нередко доводится запускать на них командлеты и скрипты удалённо. То бишь, по сети. Такая возможность реализована в PowerShell 2.0. Называется она PowerShell Remoting.

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

Например, Integrated Scripting Environment (сокращённо ISE) — удобная графическая оболочка для работы с языком PowerShell, с подсветкой синтаксиса в редакторе, встроенным отладчиком, способностью осуществлять выполнение только выделенного кода.

Причём, ISE умеет запускать несколько автономных консолей (в том числе на других компьютерах в сети) и прекрасно понимает Unicode.

Кому это нужно

Как уже сказано выше, данный софт нужен в первую очередь системным администраторам, обслуживающим вычислительные системы с Windows. Простым разработчикам прикладных приложений рассматриваемое изделие совершенно ни к чему.

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

Автор: vanilinkin, специально для xBB.uz, 23.10.2012


Предыдущие публикации:

Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2012-10-23 13:43:19

Метки материала: windows, powershell, оболочка, windows powershell, операционная система windows, компания microsoft, по, софт, программы для компьютера, информационные технологии, программное обеспечение, soft, компьютерные технологии, разработка по, софт для windows


1 комментарий

11.09.2015 17:41:44 #
Mozilla Firefox Гость ыва
Например, Integrated Scripting Environment (сокращённо ISE) — удобная графическая оболочка для работы с языком PowerShell, с подсветкой синтаксиса в редакторе...
нету там подсветки, отлаживать неудобно.

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.