Оболочка командной строки PowerShell
🕛 12.09.2009, 23:35
Windows PowerShell - это новая оболочка командной строки и среда выполнения сценариев для операционной системы Windows, разработанная компанией Microsoft относительно недавно (финальный релиз версии 1.0 этой оболочки был выпущен в ноябре 2006 года). Главной задачей, которую ставили перед собой разработчики, было создание среды составления сценариев, которая наилучшим образом подходила бы для современных версий операционной системы Windows и была бы более функциональной, расширяемой и простой в использовании, чем какой-либо аналогичный продукт для любой другой операционной системы. В первую очередь эта среда должна была подходить для решения задач, стоящих перед системными администраторами, а также удовлетворять требованиям разработчиков программного обеспечения. предоставляя им средства для быстрой реализации интерфейсов управления создаваемыми приложениями. Сейчас уже можно сказать, что продукт оказался очень продуманным и удачным, а его мощные возможности сочетаются с простотой использования. Актуальность изучения и использования PowerShell вызвана тем, что компания Microsoft в настоящее время позиционирует эту оболочку как основной инструмент управления операционной системой и рядом разработанных ею приложений (PowerShell официально включен в качестве стандартного компонента в операционную систему Windows Server 2008, а также используется в таких продуктах Microsoft, как Exchange Server 2007, System Center Operations Manager 2007, System Center Data Protection Manager V2 и System Center Virtual Machine Manager).За рубежом выпущено уже несколько книг, посвященных различным аспектам PowerShell (отдельно выделим здесь электронные книги [8( и [9]. которые можно свободно загрузить из Интернета). Также много ресурсов имеется в Интернете, отметим некоторые из них (адреса этих ресурсов приведены в конце книги в разд. "Ссылки на ресурсы Интернета"):
на сайте Microsoft поддерживается активно обновляемый раздел TechNet Script Center, содержащий примеры сценариев PowerShell, ссылки на статьи и вебкасты, посвященные этому продукту;
разработчики PowerShell ведут в Интернете блоги, в которых они делятся информацией о возможностях PowerShell;
действует группа новостей, посвященная PowerShell.
К сожалению, с систематизированной информацией о PowerShell на русском языке дело обстоит несколько хуже, особенно не хватает подробного описания нового языка программирования PowerShell. Что можно сейчас найти в Интернете по этой теме? На сайте компании Microsoft доступны локализованная версия PowerShell (встроенная справка переведена на русский язык) и пакет документации на русском языке (введение в новую оболочку командной строки и краткий обзор языка PowerShell). Периодически переводы статей по PowerShell появляются в журналах "Windows & .Net Magazine/RE" (http://www.osp.ru) и "TechNet Magazine" (http://www.microsoft.com/ technet/technetmag). Отдельно хочется сказать спасибо Д. Сотникову. А. Бешкову и В. Гусеву, ведущим блоги и проводящим вебкасты по тематике PowerShell.
При написании этой книги была поставлена цель восполнить недостаток информации о PowerShell на русском языке. В частности, хотелось решить следующие задачи:
□ пояснить лежащие в основе PowerShell базовые механизмы работы с объектами и описать основные конструкции и элементы языка PowerShell (за основу взята великолепно написанная монография [1], которую можно порекомендовать всем, кто захочет более глубоко изучить PowerShell);
□ помочь пользователям, знакомым с командным интерпретатором cmd.exe и сервером сценариев WSH, начать работу с новым средством автоматизации Windows;
□ привести практические примеры использования PowerShell для решения типичных задач администратора операционной системы Windows.
Сама постановка этих задач подразумевает некоторое знакомство читателя с компьютером. Поэтому книга ориентирована на администраторов информационных систем на базе Windows и обычных опытных пользователей, желающих изучить новую мощную оболочку командной строки от Microsoft и автоматизировать с помощью нее свою повседневную работу на компьютере.
Структура
Книга состоит из двух частей. В первой части, озаглавленной "Изучаем PowerShell", последовательно рассматриваются основные концепции новой оболочки командной строки, элементы и конструкции языка PowerShell.
В первой главе обсуждаются возможности и недостатки средств автоматизации работы в операционной системе Windows, существовавших до появления PowerShell (оболочки cmd.exe и WMIC, сервера сценариев.. Windows Script Host), приводятся причины и цели разработки новой оболочки командной строки. Особо выделяется основное отличие PowerShell от других распространенных оболочек командной строки - ориентация на работу с объектами, а не с потоком текста.
Во второй главе приводятся инструкции по установке и запуску PowerShell. описываются типы команд, используемые в данной оболочке. Обсуждаются понятия псевдонимов команд и дисков PowerShell.
В третьей главе изучаются приемы интерактивной работы в оболочке PowerShell и способы обращения к встроенной справочной системе.
В четвертой главе рассматриваются вопросы настройки интерфейса оболочки, пользовательских профилей и политик выполнения сценариев PowerShell.
В пятой главе речь идет об основном механизме PowerShell - конвейеризации объектов, и в качестве примеров описываются базовые манипуляции с объектами, которые можно выполнять в этой оболочке (фильтрация, сортировка, группировка и т. д.). Разбираются механизмы управления выводом команд PowerShell (форматирование и перенаправление результирующей информации).
Шестая глава посвящена изучению основных структур данных, использующихся в PowerShell (константы, переменные, массивы и хэш-таблицы).
В седьмой главе рассматриваются основные операторы и управляющие инструкции языка PowerShell.
В восьмой главе обсуждаются вопросы написания программных модулей (функций и сценариев) на встроенном в оболочку языке.
Девятая глава посвящена имеющимся в PowerShell средствам обработки ошибок и отладки сценариев.
Во второй части книги, "Используем PowerShell", показаны примеры применения интерактивных команд и сценариев PowerShell для решения практических задач.
В десятой главе рассматриваются вопросы доступа из PowerShell к различным объектным моделям и технологиям, которые поддерживаются операционной системой Windows (СОМ-объекты, подсистема Windows Management Instrumentations, служба каталогов ADS1, объекты платформы .NET). Приводятся примеры управления приложениями пакета Microsoft Office.
В одиннадцатой главе на примерах показывается, как с помощью команд PowcrShcll ВЫПОЛНЯТЬ основные операции с объектами файловой системы.
В двенадцатой главе изучаются команды, позволяющие управлять процессами и службами.
В тринадцатой главе рассматриваются приемы работы из оболочки Power-Shell с системным реестром Windows.
В четырнадцатой главе приводятся примеры работы с журналами событий Windows, использующие команды PowerShell.
В пятнадцатой главе обсуждаются задачи получения системной информации о настройках операционных систем и установленного программного обеспечения на локальном и удаленных компьютерах, а также команды для управления рабочими станциями в сети.
В шестнадцатой главе предложены команды PowerShell. которые можно использовать для составления HTML-отчетов об аппаратных компонентах компьютеров в сети.
В семнадцатой главе рассматриваются вопросы получения и настройки параметров сетевого протокола TCP/IP. Приводятся примеры сценариев на языке PowerShell, которые отправляют сообщения по электронной почте.
В восемнадцатой главе обсуждаются проблемы совместного использования различных средств автоматизации Windows (команд интерпретатора cmd.exe, сценариев WSH на языках VBScript или JScript. команд и сценариев PowerShell). Проводится сравнение языков cmd.exe и VBScript с языком PowerShell, приводятся примеры использования из PowerShell кода VBScript и JScript.
Кроме основного материала, в книге имеется два приложения. В приложении 1 рассматривается объектная модель Windows Management Instrumentation (WM1), которая широко используется для выполнения различных задач администратора операционной системы. Предоставление доступа к этой модели из командной строки было одной из основных целей при разработке PowerShell.
В приложении! описываются некоторые СОМ-объекты. которые могут оказаться полезными для администраторов и пользователей Windows, и даются примеры использования этих объектов из PowerShell.
Принятые в книге соглашения
Оболочка PowerShell - это интерактивная среда, поэтому во многих примерах показаны как команды, вводимые пользователем, так и ответ на них, генерируемый системой. Перед командой указывается приглашение PowerShell, обычно выглядящее как ps C:\>. Сама вводимая команда выделяется полужирным шрифтом, например Get-Process. В следующих нескольких строках приводится текст, возвращаемый системой в ответ на введенную команду. например:
PS C:\> Get-Process
les
NPM (К)
РМ(К)
WS(K)
VM(M)
CPU(s)
Id
ProcessNan
99
5
1116
692
32
0.07
232
alg
39
1
364
500
17
0.14
1636
ati2evxx
57
3
1028
1408
30
0.38
376
atiptaxx
412
6
2128
3600
26
6.50
808
csrss
64
3
812
1484
29
0.19
316
ctfmon
386
13
13748
14448
77
16.11
1848
explorer
171
5
4512
584
44
0.20
428
GoogleT...
0
0
0
16
0
0
Idle
151
4
2908
992
41
1.05
412
kav
Многоточие здесь указывает на то, что для экономии места приведены не все строки, возвращаемые командой Get-Process.
Иногда вводимые команды могут разбиваться на несколько строк. В этих случаях перед каждой дополнительной строкой команды указываются символы >>, например:
PS C:\> dir *.tmp | ForEach-Object (
» $arr=$_.Name.split(".");
» $newname=$arr[0]+".new";
» ren $_.FullName $newnama -PassThru;
» ) »
6
Введение
Каталог: Microsoft.PowerShell.CoreNFileSystem::С:\ Mode LastWriteTime Length Name
-a- 17.06.2008 11:39 0 3.new
При описании операторов, функций и методов объектов используются стандартные соглашения. Названия подставляемых параметров и аргументов набраны курсивом, а необязательные параметры заключены в квадратные скобки []. например:
CreateObject(strProgID [,strPrefix])