Знакомство с оболочкой PowerShell для системы Windows
PowerShell является более совершенной разработкой компании Microsoft наряду с такими оболочками как командная строка CMD и сервер сценариев Windows Script Host. CMD и WSH имели несколько недостатков в своем функционале, что надавало операционной системе Windows статуса системы с эффективным набором средств автоматизации и написания сценариев, так, гибкость и функциональность командной строки была слишком ограничена, а WSH, позволяющий работать с объектными моделями ADSI и WMI, был слишком сложным для простых пользователей среднего уровня и начинающих администраторов Windows, PowerShell в свою очередь была призвана решить сложившиеся недостатки, в частности, она не ограничивается работой с объектами WMI, а позволяет в полной мере получить доступ к классам платформы .NET Framework, тем самым обеспечивая взаимодействие пользователя из командной строки со всей мощью данного функционала. Стоит сказать, что и WSH сценарии могут использовать функционал NET классов, хотя это не является первостепенной целью сервера сценариев. PowerShell идет в составе Windows 7 и Vista, а для Windows XP ее надо дополнительно устанавливать.
Новая оболочка PowerShell XP (первоначальное ее название Monad) создавалась разработчиками компании Microsoft как среда для разработки сценариев, которая по максимуму бы подходила для современных версий операционной системы Windows, имея большой функционал, расширяемость и простоту в использовании.
Основными целями PowerShell являются:
- Предоставление возможности прямого доступа из среды командной строки к объектам СОМ, WMI и .NET.
- Возможность работать с источниками данных системы по принципу файловой системы – так, навигация по разделам реестра осуществляется как по стандартным каталогам.
- Интуитивно понятное название команд (командлеты), которые определены по принципу “глагол-существительное”, например, Get-Process (информация о процессах), Stop-Service (остановка произвольной службы), Clear-Host (очистить экран консоли) и т. д.
- Возможность создавать собственные команды.
- Частичная поддержка команд из других оболочек, таких как CMD (dir, cd…) и UNIX-оболочек
При разработке Windows PowerShell XP целью было взять все лучшее из других оболочек командной строки из других операционных систем, в частности, свое влияние сделали Perl и Python, Tcl и WSH, bash и ksh, AS/400 и VMS. Сам по себе сеанс работы в оболочке похож на работу в оболочке UNIX-систем. Разработчики придали внимание и вопросам безопасности при работе со сценариями, так, сценарий можно запустить только указав полный путь к нему, при чем по умолчанию, запуск Power-шелловских сценариев в системе вообще запрещен.
Условием использования оболочки PowerShell в системе Windows, является наличие установленного пакета .NET Framework 2.0. После установки и запуска оболочки, мы увидим консольное окно, которое довольно сильно смахивает на окно командной строки, хотя сходство является лишь внешним. В своем наборе Windows XP предоставляет в состав PowerShell свыше 100 команд, называемых командлетами (cmdlets).
Для вызова интерактивной справки по синтаксису команд нужно в консольном окне ввести Get-Help. Что бы просмотреть список всех команд оболочки PowerShell системы XP надо ввести Get-Help *. Для получения справки по определенной команде, например по Stop-Service, надо ввести Get-Help Stop-Service, аналогичные действия производятся и для других командлетов, при желании можно получить поле детальную справку с примерами, для этого надо дополнительно ввести –Detailed, например: Get-Help Stop-Service –Detailed.
Также предоставляется возможность использовать псевдонимы команд, что упрощает работу с оболочкой. В добавок, можно автоматизировать ввод данных, для этого надо частично ввести желаемое слово и нажать на клавишу табуляции TAB, например: введем GET- и понажимаем на TAB, мы увидим, что оболочка PowerShell Windows XP сама предоставляет возможные варианты ввода.
PowerShell поддерживает и конвейеризацию, то есть, связывание нескольких командлетов, для этого используется команда конвейера |. Допустим, нам надо получить детальную информацию с примерами по всем командлетам консоли, для этого достаточно ввести Get-Help * | Get-Help –Detailed, так как на выходе получим довольно огромное количество информации, то процесс вывода в консольном окне PowerShell оболочки Windows можно будет прервать нажатием сочетания клавиш CTRL-C.
Советую почитать:
Опубликовано в рубрике PowerShell