Василий Гусев
Windows PowerShell всё настойчивее входит в жизнь системных
администраторов. Если раньше можно было игнорировать «новую забаву Microsoft с
пафосным названием», то сейчас это всё сложнее и сложнее.
Поддержка PowerShell стала обязательной (в разумных пределах) для будущих
серверных продуктов Microsoft, да и другие компании не удержались от того,
чтобы использовать это средство автоматизации в своих продуктах. Например, VMware
готовит VI Toolkit – оснастку для автоматизации и управления VMware ESX и VMware
VirtualCenter, а Intel выпустила набор командлетов для управления WebSphere MQ.
И это лишь самые громкие имена. Давно стало понятно, что PowerShell останется
надолго. И надо сказать – это здорово!
Являясь неимоверно мощным инструментом
автоматизации, PowerShell еще и очень удобен и прост в изучении. Множество
стандартных псевдонимов и умение прозрачно работать с классическими утилитами
командной строки облегчат переход любителям cmd.exe и других оболочек. Но тем
не менее это совершенно другой язык и совсем другой подход к работе, поэтому у
специалистов, начинающих осваивать PowerShell, неминуемо возникают вопросы. Я
собрал вопросы, которые люди мне задавали, которые я встречал на просторах
Интернета, ну и еще немножко добавил сам, из своего опыта работы. И в этой
статье постараюсь дать на них ответы.
Что такое PowerShell?
Традиционная формулировка звучит так: «язык сценариев и оболочка командной
строки нового поколения». Ранее был известен под кодовым именем «Monad».
Зачем он мне нужен, когда есть VB Script?
Платформа Windows долгое время была отстающей в области командной строки и скриптов.
Унаследованный от DOS command.com, превратившийся затем в cmd.exe, Visual Basic
Script да изредка JavaScript и Perl. Вот и всё, что было у администраторов. Но
решив завоевывать направление серверных операционных систем, специалисты Microsoft
поняли, что без командной строки – успеха не видать. Сначала появилось огромное
количество утилит, таких как netsh, diskpart, fsutil. Но практически все они
обладают собственным синтаксисом, выводят информацию в различном виде, да и для
работы с ними всё равно нужна полноценная оболочка. Да и ресурсы Com-объектов
тоже хочется использовать с помощью чего-либо
более удобного, чем VB Script. И для этого был создан PowerShell. Создавался он
с нуля, без оглядок на совместимость (как cmd) и именно для системных
администраторов (в отличии от VBS). PowerShell вобрал в себя лучшие элементы из
множества языков, например Perl, C# или PHP, но при этом принес в мир командной
строки такие вещи, как объектные конвейеры или возможность использования .Net Framework.
А учитывая еще огромный интерес производителей программного обеспечения к PowerShell,
становится понятно: учить PowerShell – нужно.
Стоит ли начинать изучать PowerShell сейчас? Может лучше подождать, когда
выйдет версия 2.0?
Смысла ждать второй версии нет никакого. Она не изменит языка, лишь добавит
ему новые возможности. Совместимость с первой версией является главным
приоритетом разработчиков. Да и доступная на момент написания статьи версия –
лишь CTP (Community Technology Preview), то есть даже до Beta-версии PowerShell
2.0 не дорос.