Учебник powershell: Изучение PowerShell — книги и ресурсы – gotoADM.ru

Содержание

PowerShell: инструмент не только для сисадмина | GeekBrains

Зачем нужен скриптовый язык от Microsoft.

https://d2xzmw6cctk25h.cloudfront.net/post/1039/og_cover_image/836f18c59ca2c11dce7f872653d296d2

Немного коснувшись Powershell в тексте про простейшие скрипты, мы уже убедились в том, что это достаточно простой и эффективный инструмент для выполнения повседневных задач. Однако понять истинные возможности PowerShell по нескольким примерам и поверхностному изучению категорически невозможно, ведь до определенного момента вас не покидает ощущение надуманной легкости. Так является ли PowerShell важным инструментом Windows или это игрушка для гиков? Давайте разбираться.

Краткая справка

PowerShell был официально запущен в 2006 году и был призван заменить сильно ограниченный интерпретатор командной строки cmd. Это уже была вторая попытка замены, выпущенный 8 годами ранее Windows Script Host провалился из-за отсутствия встроенной документации и отсутствия интеграции в оболочку.

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

Командлеты на конвейере

Основа PowerShell — командлеты. Если вы хоть немного знаете английский язык, то уже поняли, что название «командлеты» происходят от красноречивого «cmdlet». Их структура включает в себя собственно команду (глагол) и объект (существительное). Например: Get-Process, Sort-Object, Rename-Item и так далее. Разделение, как видно, выполняется знаком «-». Есть ограниченный список командлетов, используемый системой по умолчанию, но начиная с версии PowerShell 2.0 вы можете самостоятельно создавать свои командлеты. Подробнее прочитать об этой процедуре вы можете на официальной странице Microsoft. Кстати, актуальная версия 5.1 вышла в августе прошлого года.

Другое базисное понятие в PowerShell — конвейер (Pipeline). Конвейер — процедура передачи выходных данных одного командлета в качестве входных следующего. Обозначается конвейер «|» , а на практике такая запись выглядит предельно просто:

Get-Process | Sort CM

Как видно из записи, в коде в конце каждой строки ставить «;» не надо, но данный знак можно использовать для разделения командлетов:

Get-Process; Get-Help

Все удобно и красиво.

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

Удобство и скорость

Конечно, желая пойти навстречу своим клиентам и до предела облегчить им жизнь, огромная команда Microsoft создала удобный и понятный даже далекому от программирования человеку продукт. Вот представьте на минуту, что вы системный администратор в офисе. Вам надо проверить не занимаются ли сотрудники ерундой на рабочем месте. Проще всего это сделать, осуществив поиск и завершение «неправильного» процесса на компьютере в активного каталоге:

$proc = «Wrong_Proc»
$strCategory = «computer»
$objDomain = New-Object System.DirectoryServices.DirectoryEntry
$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = $objDomain
$objSearcher.Filter = («(objectCategory=$strCategory)»)
$colProplist = «name»
foreach ($i in $colPropList){$objSearcher.PropertiesToLoad.Add($i)}
$colResults = $objSearcher.FindAll()


foreach ($objResult in $colResults)
{
$objComputer = $objResult.Properties
$objComputer.name
if (Test-Connection -Count 2 -ComputerName $objComputer.name -Quiet)
{
$ps = Get-WmiObject Win32_Process -Filter «Name=’$proc'» -ComputerName $objComputer.name

foreach ($i in $ps)
{
$result = $i.Terminate()
if ($result.ReturnValue -eq 0) { «Success $comp»}
else {«Error $comp»}
}
}
}

 

Wromg_Proc — название искомого процесса, например, wmplayer.exe. Первая часть скрипта посвящена поиску нашего компьютера, вторая в AD, вторая — собственно работе с процессом. Несмотря на то, что визуально такая запись может оттолкнуть новичка, фактически со знанием английского можно легко расшифровать код.

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

Заверните со списком литературы

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

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

Немало интересных и познавательных обучалок можно найти на Хабрахабр.

Готовые скрипты на любой вкус и несколько слов от создателей можно найти на горячо горячо любимом GitHub.

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

Хотите стать веб-разработчиком? Тогда вам на интенсив по веб-разработке для начинающих!

Доступна для загрузки бесплатная книга о PowerShell на русском / Хабр

Не могу не поделиться радостной новостью, о которой в своем блоге рассказал мой коллега Андрей Бешков. К сожалению, он не ведет блога на хабре, поэтому позволю себе рассказать за него о данном событии:) Думаю аудитории хабра будет очень интересно и полезно услышать об этом.

Некоторые главы книги:

— Первое впечатление о Windows PowerShell
— Расширенные возможности вывода: конвейеры
— Вводные упражнения с объектами Windows PowerShell
— Работа с процессами
— Вывод в файлы формата TXT, CSV или XML

Загрузить книгу можно здесь

Полное оглавление под катом:

Первое впечатление о Windows PowerShell ………………………………………………………5
Расширенные возможности вывода: конвейеры ………………………………………………..7
Вводные упражнения с объектами Windows PowerShell ………………………………………..8
Работа с процессами ……………………………………………………………………………….8
Вывод в файлы формата TXT, CSV или XML ………………………………………………………9

Вывод в цвете ………………………………………………………………………………………10
Проверка условий с помощью командлета if ……………………………………………………11
Вывод в виде HTML …………………………………………………………………………………12
Работа с файлами …………………………………………………………………………………..15
Поиск информации об объектах с помощью Get-Member… 16
Удаление файлов… 18
Создание папок …………………………………………………………………………………….19
Если у вас есть время … ……………………………………………………………………………21
Windows PowerShell как машина обработки произвольных объектов… 23
Объекты WMI… 23
Работа с объектами .NET и XML… 25
Работа с COM-объектами… 26
Работа с журналами сообщений …………………………………………………………………29
Сценарии-решения к упражнениям в этой книге ………………………………………………30
Примеры к Windows PowerShell – от простых к сложным… 33
Теоретические принципы Windows PowerShell… 35
Windows PowerShell – краткое введение… 35
Цели разработки Windows PowerShell… 35
О тексте, разборе текста и объектах… 35
Новый язык сценариев… 36
Команды Windows и служебные программы… 37
Интерактивная среда… 37
Поддержка сценариев… 37
CMD, WScript или PowerShell? Что выбрать?… 37
Windows PowerShell 1.0 …………………………………………………………………………..38
Безопасность при использовании сценариев …………………………………………………..39

Список русскоязычных ресурсов по Windows PowerShell (Ru-Ru) — TechNet Articles — United States (English)

На этой странице представлены всевозможные ссылки по Windows PowerShell: книги, блоги, и т.п. Тут перечислены только русскоязычные ресурсы, список англоязычных можно посмотреть на страницах Windows PowerShell и Windows PowerShell Survival Guide.

Основы


Загрузить последнюю версию PowerShell, для тех систем где она не предустановлена можно по ссылке http://support.microsoft.com/kb/968929 в составе пакета Windows Management Framework, который включает в себя PowerShell 2.0, WinRM 2.0 и BITS 4.0.

К Windows PowerShell доступна весьма обширная встроенная справка. Доступ к ней можно получить либо непосредственно из оболочки с помощью командлета Get-Help, либо онлайн, на сайте TechNet.

Много полезных ссылок так-же представлено на официальном русскоязычном сайте Windows PowerShell.

Скринкасты


Windows PowerShell — сила командной строки Windows (Василий Гусев)
Пишем первый сценарий и знакомимся с Windows PowerShell (Василий Гусев)
PowerGUI — графическая среда на базе Windows PowerShell (Дмитрий Сотников)
Получи за 5 минут любую информацию о любых компьютерах своей сети (Марат Бакиров)
Автоматизация административных задач с помощью System Center и PowerShell (Дмитрий Сотников)
Что нового в PowerShell 2.0 (Василий Гусев)
Регулярные выражения в Windows PowerShell (Василий Гусев)
Разгоняем PowerShell (Дмитрий Сотников)
Все скринкасты с тегом PowerShell на TechDays.ru

Видеокурс по Windows PowerShell 2.0 (Юрий Лебедев)

Статьи


Windows PowerShell (Сергей Вальковский)
Знакомимся с PowerShell — новой командной оболочкой (Андрей Бирюков)
PowerShell — Часто задаваемые вопросы (Василий Гусев)
Статьи о PowerShell в TechNet Magazine (Дон Джонс) почти все переведены на русский язык.

Книги


Электронные книги (бесплатные)
PowerShell Course Book (Френк Кох, перевод Виктор Горбунков)
Эффективное программирование в Windows PowerShell (Keith Hill, перевод Сергей Вальковский)
Бумажные книги
Введение в Windows PowerShell (Андрей Попов)
Windows PowerShell 2.0 справочник администратора (Уильям Р. Станек)

Блоги


PowerShell и другие скрипты (Василий Гусев)
Vadim Podans’s blog — PowerShell powered (Vadims Podans)
Ilya Sazonov: IT Pro (Илья Сазонов)
ShS’s blog
Kazun — Заметки о PowerShell

PowerShell – материалы для изучения

Командлетов в Windows PowerShell много поэтому сегодня я предлагаю рассмотреть небольшой список наиболее полезных

Технология Windows PowerShell позволяет не только выполнять команды администрирования, но и полноценно программировать алгоритмы

В данной статье мы рассмотрим такую технологию от компании Microsoft как Windows PowerShell, мы

Ресурсы по PowerShell | PowerShell и другие скрипты

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

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

 

Для начала.

Начать стоит со скачивания и установки PowerShell:

http://www.microsoft.com/windowsserver2003/technologies/management/powershell/download.mspx

В первую очередь следует ознакомиться с прилагающейся документацией, Getting Started и User Guide. Причем если вы установили Localized Package PowerShell, то эти доки будут на русском. Находятся они в C:\Windows\System32\WindowsPowerShell\v1.0\Documents\ru-RU\

Кроме того существует встроенная справка доступная в консоли с помощью команды Get-Help. Также её можно скачать в виде графического файла справки chm.

 

Вебкасты и скринкасты (на русском!)

Posh Basics Screencast — Скринкаст демонстрирующий основы работы в консоли PowerShell, и некоторые вещи которые проще показать чем описать в блоге. Многие хвалят 🙂

PowerTab Screencast — Демонстрация установки и использования скрипта PowerTab. IntelliSense в консоли — впечатляет 😉

PowerShell: Часто задаваемые вопросы — Вебкаст с онлайн ответами, в основном в виде демонстраций. Докладчики: Я и Андрей Бешков (Microsoft)

Управление Windows Vista с помощью Windows PowerShell — примеры практического использования PowerShell для автоматизации Vista.

Разработка командлетов для PowerShell — вебкаст Дмитрия Сотникова, с демонстрацией процесса создания простого командлета. Очень рекомендуется разработчикам!

Скринкасты о PowerShell на TechDays.ru. В том числе парочка моих 🙂

 

Статьи (на русском!)

Статья Windows PowerShell от Сергея Вальковского на WindowsFaq.ru. Очень рекомендую.

Знакомимся с PowerShell — Большая статья Андрея Бирюкова на русском языке.

PowerShell: Часто задаваемые вопросы — Моя статья, по мотивам этого вебкаста.

PowerShell: Часто задаваемые вопросы, продолжение. — пока доступна только в бумажном виде, в журнале «Системный Администратор» за апрель 2008 года.

 

Книги

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

  • Эффективное программирование в Windows PowerShell. Книга по сути является сборкой постов из блога Keith Hill. На русский язык её перевёл Сергей Вальковский. Очень рекомендую, но не для новичков. Оригинальная версия доступна тут.
  • Введение в Windows PowerShell — Первая, пока единственная бумажная, и весьма неплохая книга о PowerShell на русском. Подробнее тут.
  • PowerShell course book — книга которую можно прямо сейчас, абсолютно бесплатно, скачать из интернета. Книга доступна на английском, немецком языках, а теперь и на русском!
  • PowerShell in Action — Это книга от одного из разработчиков PowerShell, Bruce Payette. Превосходная книга не только для начинающих, но и для профи. В ней постепенно раскрываются основы языка, но при этом разъясняется не только «Как оно работает?» но и «Почему оно работает так?»
  • PowerShell Cookbook от O’Reilly. Следующая книга в моем Wish List. Судя по рецензиям она прекрасно дополняет PowerShell in Action играя роль справочника.
  • Administrative tasks using Windows PowerShell — продолжение PowerShell course book, тоже бесплатна и доступна для скачивания.

 

Блоги

Так сложилось что блоги играют очень важную роль в развитии PowerShell. Вероятно это потому что они являются наилучшим способом делиться готовыми скриптами, случаями применения, и разными хитростями с сообществом 🙂 А началось всё с блога разработчиков… (если мне не изменяет память 🙂 )

К сожалению русскоязычных блогов посвященных PowerShell мне известно очень мало. Себя я упоминать не буду из-за врожденной скромности 🙂 Так что вот:

  • Митя Сотников: по-русски о PowerShell и не только — Блог Мити на русском языке.
  • Блог Андрея Бешкова — Андрей занимается PowerShell в России, и проводит много интересных вебкастов по Windows Server 2008, NAP и PowerShell.
  • Vadims Podans’s blog — Очень интересный и познавательный блог, но не для новичков 😉
  • Zorion’s Weblog — Различные заметки о технологиях Windows, в том числе немало и по PowerShell.
  • Блог Ильи Сазонова (sie), MVP: Management Instrumentation. Много красивых практических примеров применения PowerShell.

Еще множество не менее интересных блогов вы можете найти у меня в «Blogroll» (панелька со ссылками справа 🙂 ), а также в аналогичных blogroll’ах на других блогах 🙂

 

Сайты

Домашняя страница Windows PowerShell. Официальный сайт технологии и всего к ней относящегося. Доступен по короткому адресу microsoft.com/powershell. Содержит ссылки на статьи, блоги, вебкасты и т.д.

Группа новостей — это веб интерфейс к группе новостей PowerShell. Прекрасное место для обсуждения любых вопросов по этому языку.

Script Center — Отдел PowerShell. Примеры и библиотека скриптов, статьи от Scripting Guys и руководство по конвертации скриптов из VBScript.

Windows PowerShell 2.0 CTP Home Page — Домашняя страница CTP 2.0 следующей версии PowerShell находящейся сейчас в разработке. Кстати будет практически полная совместимость скриптов, командлетов и приложений.

PowerShellCommunity.org — Англоязычное сообщество пользователей PowerShell. Библиотека скриптов и ссылок.

Узел PowerShell на Del.icio.us — куча ссылок по PowerShell.

PowerShell Toolbox — страница аналогичная этой на Microsoft Script Center

TechNet Magazine. Множество статей о PowerShell от MVP Don Jones. Практически все переведены на русский язык! 🙂 (на список на английском не обращайте внимания 😉 )

 

Snapin’ы и программы

Mow’s PowerTab — Скрипт заменяющий встроенное автодополнение по [tab] новой системой, давая возможность не только дополнения классов .Net, Wmi, и практически всего остального что можно дополнить. Кроме того для завершения используется механизм аналогичный IntelliSense, когда после нажатия показывается список подходящих вариантов и можно выбрать нужный либо стрелками на клавиатуре, либо просто донабрав текст. Я пока еще могу работать без него, но с ним сиииильно легче… 🙂

PowerShell Community Extensions — Открытый проект дополнений которых иногда не хватает в стандартной поставке PowerShell. Например сюда входят комадлеты Join-String, Out-Clipboard, скрипт Elevate для использования с UAC, и провайдеры Feed Store и Active Directory позволяющие обращаться к этим структурам как к обычной файловой системе.

Active Directory Cmdlets — Must have для работы с Active Directory. Скриптинг под AD еще никогда не был таким простым 🙂

PowerGUI и PowerGUI Script Editor — Графический шелл позволяющий использовать PowerShell не набирая ни одной строки кода, и прекрасный редактор с подсветкой синтаксиса и автодополнением.

PowerShell for Far — плагин для Far.Net с помощью которого можно использовать PowerShell напрямую из FAR, а также схема для colorer позволяющая подсвечивать даже самый сложный синтаксис.

PowerShell Plus и PowerShell Analizer — Два очень разных хоста для PowerShell. PS Plus продолжает традиции классического хоста, но с добавлением множества классных возможностей, а PSA демонстрирует совершенно новый подход к командной строке который стал возможен только с PowerShell, и больше похож скорее на SQL Query Analizer.

PowerGadgets — Дополнение к PowerShell дающее возможность выводить результаты скриптов PowerShell (или запросов SQL) в виде красивых графиков, циферблатов, и т.п. в том числе в реальном времени. А еще можно выводить всё это на гаджеты боковой панели в Vista.

PowerShell SharePoint Provider — компонент который представляет структуру SharePoint как дерево каталогов для PowerShell. Проект пока в разработке, и WSS 3.0 пока не поддерживается 😦

 

Virtual Labs

В виртуальных лабораториях можно пощупать всё своими руками на виртуальных машинах, онлайн.

TechNet Virtual Lab: Introduction to Windows PowerShell

TechNet Virtual Labs: Writing Scripts with Windows Powershell

TechNet Virtual Lab: Using PowerShell in Windows Server 2008 Beta 3

MSDN Virtual Lab: Creating Windows PowerShell Script Cmdlets

TechNet Virtual Lab: Working with the IIS Manager

TechNet Virtual Lab: Using Microsoft Windows PowerShell for Administration and Customization of Microsoft Windows SharePoint Services 3.0

 

PS:

Я перечислил далеко не всё. Ресурсов по PowerShell уже необъятное множество. Но я постараюсь периодически обновлять эту страничку. Дополнения в комментариях приветствуются 🙂

Понравилось это:

Нравится Загрузка…

Примеры PowerShell скриптов для Windows

В админиcтрировании всегда есть место творчеству. Хочешь сделать какую-нибудь автоматизацию рутинной задачи? Пожалуйста! Нужно что-то регулярно проверять на активность? Не вопрос! Хочешь обработать какой-нибудь гигантский отчет и вывести только актуальные данные? Тоже можно. Все эти и многие другие задачи лучше всего решать при помощи скриптов, и язык PowerShell в случае с Windows — оптимальный выбор.

Что такое PowerShell и чем он хорош

Пользователи UNIX и Linux, а с какого-то мoмента и macOS привыкли к тому, что под рукой всегда есть Bash — немного старомодное, но универсальное и мощное средство, при помощи которого всего парой строк можно творить удивительные вещи. Прописываешь новый скрипт в cron — и готово, он уже крутится на твоем компьютере или на сервере и незаметно делает что-нибудь полезное.

Возвращаясь в Windows (а без этого иногда никак), понимаешь, что скрипты .bat хоть и хороши, но спасают не всегда: очень уж ограниченны их возможности. И если ты до сих пор считал, что PowerShell — это неведомая штуковина, ради которой нужно что-то там поднимaть и настраивать, то не спеши с выводами — он, если разобраться, совсем неплох.

Windows PowerShell — это расширяемое средство автоматизации с открытыми исходниками, которое состоит из оболочки (командной строки) и скриптового языка. Впервые он был показан в 2003 году (тогда он назывался Monad). PowerShell 2.0 вышел в составе Windows 7 и Windows Server 2008 R2 и с тех пор присутствует в Windows в качестве стандартного компонента. Его даже включили в Windows XP SP3. PowerShell построен на основе .NET Framework и интегрирован с ним. PowerShell может обращаться к COM, WMI и ADSI, а также, конечно же, исполняет консольные команды.

[ad name=»Responbl»]

В общем, «пошик» имеет крепкие связи с продуктами Microsoft, будь то Active Directory или почтовый сервер Exchange. Это позволяет без подключения к оснастке сервера обращаться к ним через консоль и отдaвать команды.

Если раньше ты не интересовался PowerShell, то, скорее всего, у тебя стоит вторая версия. Я рекомендую обновиться как минимум до третьей — она содержит куда больше возможностей и полезных фишек. Если не вдаваться в подробности, то в PowerShell 2.0 входит около десятка модулей и примерно 350 команд, а в PowerShell 3.0 уже около 2300 командлетов из более чем 70 модулей. «Хакер» также писал о том, чем отличается самый новый PowerShell пятой версии из Windows 10.

[ad name=»Responbl»]

Выбираем среду разработки и инструменты

Теперь давай разберемся, где удобнее всего писать код. Можно, конечно, и в «Блокноте», Notepad++ или Sublime. Но это в данном случае не самый грамотный выбор редактора. Лучше всего начинать знакомство с PowerShell, вооружившись идущим в комплекте PowerShell ISE.

PowerShell ISE

Это даже не редактор, а практически полноценная среда разработки. Здесь есть функция IntelliSense, которая позволяет просматривать перечень командлетов и их параметров, переменных, утилит и прочего. Поддерживаются сниппеты, есть возможность расширения нaбора функций за счет различных аддонов. Очень полезно и окно Commands. В нем можно составлять команды в визуальном режиме: выбираешь модуль, находишь нужный командлет и задаешь ему необходимые параметры. Получившуюся команду можно скопировать в консоль или сразу запустить на выполнение. В общем, этакий конструктор для админа. Ну и конечно, есть подсветка синтаксиса, дебаггер и многое другое.

Тем не менее у PowerShell ISE есть и достойные конкуренты. Один из них — Dell PowerGUI.

PowerGUI — это визуальное дополнение к PowerShell. Оно упрощает сборку собственных сценариев до выбора необходимых командлетов. Берешь то, что нужно для решения задачи, и перетаскиваешь части кода, пока не получишь скрипт. Одна из главных фишек PowerGUI — это Power Packs, готовые скрипты, опубликованные сообществом пользователей и выложенные в свобoдный доступ. Тут есть и простенькие команды вроде добавления пoльзователей, и сложные — к примеру, управление свитчами и виртуальными машинaми. Все их легко дополнять и модифицировать в соответствии с нуждами.

powergui

PowerShell Studio 2015 фирмы Sapien — бoлее продвинутая среда, которая рассчитана на совместную разработку одного проекта большим количеством участников. Если ты когда-нибудь имел дело с Visual Studio, то, думаю, заметишь сходство. Среди полезных фишек PowerShell Studio — панель Ribbon, поддержка удаленной отладки, а также функции компилятора, которые позволяют включить скрипты в исполняемые файлы. Есть поддержка разных версий PowerShell.

PowerShell Studio 2015

Стоит упомянуть и Script Browser для Windows PowerShell ISE. Это не среда разработки, но вeсьма интересный инструмент, разработанный в Microsoft. Script Browser открывает доступ к базе готовых скриптов, которые можно использовать в качестве образцов для написания своего кода. А еще эта штука умеет анализировать код, который ты пишешь, и подсказывает, как его улучшить.

Script Browser для Windows PowerShel

Несколько полезных трюков

Разобравшись с редактором, можно приступать к написанию кода. PowerShell — несложный язык, и, я думаю, ты быстро разберешься, что к чему. Команды здесь называются командлетами, и каждый из них состоит из двух частей. Сначала идeт действие, например Get, Set, Add, Invoke, Remove. Затем указывается то, на что действие направлено: Service, VM, AzureAccount, DHCPServerSetting. Каждая часть отделяется от другой дефисом. Получается, к примеру, get-process. Это, кстати, полезная команда, которая выводит список процессов. Скажем, если написать

get-process BadTh*

увидим что-то такое:

Handles  NPM(K)  PM(K)    WS(K)    VM(M)  CPU(s)  Id    ProcessName
———      ———     ———      ———      ———    ———     ———   ———
28       4       -210844  -201128  -163   25.67   2792  BadThread

Теперь можно завершить зависший процесс:

stop-process -id 2792

Хочешь посмотреть права на директорию? Сделать это помогает такой командлет:

E:>Get-Acl N:Data

Можно проcмотреть рекурсивно, правда уже чуть с более сложной логикой:

E:>Get-ChildItem N:Data -recurse | Get-Acl

Если не можешь понять, что делает какой-то командлет, напиши следующее (заменив Get-Process на название неизвестного командлета):

Get-Help -Name Get-Process

Можно также выполнить

Get-Help -Name Get-*

В этом случае будет выведен весь список возможных вариантов.

Теперь давай попробуем узнать что-нибудь о нашем домене через кoнсоль PowerShell. К примеру, давай посмотрим пользовательские аккаунты, у которых установлен неистекающий пароль:

Search-ADAccount -PasswordNeverExpires | FT Name,  ObjectClass, UserPrincipalName

Кстати, к каждому полю в окошке опции учетной записи или компьютера можно обратиться и считать данные. Таким образом можно делать целые срезы. Вот, к примеру, запрос на основе данных о телефонных номерах:

Get-AdUser -Filter * -Properties OfficePhone | FT OfficePhone,UserPrincipalName

[ad name=»Responbl»]

PowerShell в сравнении с bat

Иногда задачу можно решить как старым дедовским методом, так и при помощи PowerShell. Я рекомендую не лениться и использовать PS, хотя бы просто потому, что так ты его быстрее изучишь и сможешь применять в более сложных ситуациях. К тому же ты постепeнно оценишь его синтаксис — более элегантный и консистентный. Вот несколько примеров, как вещи делались раньше и как их можно сделать при помощи PowerShell.

Следующая командная строка перезагрузит компьютер с задержкой в десять секунд:

shutdown /r /m \\SERVER1 /f /t 10

На PowerShell это будет выглядеть вот так:

Start-Sleep 10
Restart-Computer -Force -ComputerName SERVER1

Вот так через bat можно перезагрузить службу dnscache (или любую другую):

sc stop dnscache
sc start dnscache

В PowerShell это будет так:

Restart-Service dnscache

Мап диска в bat:

Net use L: \\server1\c$

И в PowerShell:

New-PSDrive -name L -psprovider FileSystem -root \\server1\c$

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

[ad name=»Responbl»]

Удаленное управление с PowerShell

В основном описанные в статье команды выполняются на том же компьютере, на котором они запущены. Проще говоря, команды для управления AD выполнять нужно на сервере, где контроллер домена и установлен, что, согласиcь, на корню рубит удобство и автоматизацию. Для выполнения команд удалeнно, что нам и требуется, надо пользоваться специальными командлетами. К пpимеру, для подключения к удаленному компьютеру и перезапуску там спулера пeчати вводи

Enter-PSSession -ComputerName SRV4
Restart-Service -Name spooler

Более подробно читай тут.

Что почитать еще

Книжек и прочих обучающих материалов по PowerShell огромное количество. Есть как справочники, так и учебные туториалы. Начать можно с сайта Microsoft, где есть неплохие видеоуроки.

В деле немало поможет и книга «Master-PowerShell» Тобиаса Велтнера. В ней автор охватывает многие понятия вроде массивов, хеш-таблиц, конвейеров, объектов, функций, обработки ошибок, регулярных выражeний и так далее. Заодно подробно рассматривается XML и разные аспекты администрирования. Увы, на русский эта книга не переведена.

Из русскоязычных мануалов по PowerShell мне попадался «Windows PowerShell 2.0. Справочник администратора» Уильяма Станека — он весьма неплох.

На «Хабрахабре» есть перевод полезной статьи Джеффери Хикса об администрировании Active Directory при помощи PowerShell.

[ad name=»Responbl»]

Итого

Как видишь, все не так сложно, как кажется на первый взгляд. Главное — четко понимать, что нужно на выходе, и на этом основании выбирать командлеты. А с удобным редактором это делaть куда легче. Доступность разнообразных заготовок может заметно упростить решение повседневных задач администрирования. Знания «пошика» прокачаешь по ходу дела, а это в работе с Windows совсем не лишнее.

Click to rate this post!

[Total: 15 Average: 4]

Как профессионально освоить PowerShell за 5 дней и стать «ленивым» администратором?

Каким должен быть сегодня профессиональный Системный Администратор современной ИТ инфраструктуры? Можно долго перебирать ответы на этот вопрос, но практически все согласятся с одним из вариантов – «Админ должен быть ленивым»!

«Ленивый» администратор, это профессионал, который всегда использует оптимальный подход как в минимизации рисков, так и в автоматизации своего труда. Основным полем действия большинства системных администраторов является конфигурация и настройка различных систем. И конечно же, кроме самых различных прочих задач, рано или поздно каждый администратор сталкивается с необходимостью написания весьма разнообразных скриптов – эдаких мини программ, выполняющих различные сценарии, как изменения настроек, так и различных сопутствующих действий.

Многие задачи сегодняшних администраторов содержат большое количество рутинных операций – создание учетных записей и других объектов, изменение множества параметров, использование различных шаблонов, управление и контроль разнообразных процессов и т.п… Для большинства подобных действий администраторы используют немалое множество административных инструментов, консолей, программ и интерфейсов. Очень часто выполнение тех или иных операций вручную требует использования последовательно нескольких, а нередко и весьма немалого количества подобных инструментов. А это занимает время, да и вообще, выполнение рутинных операций «руками» — деятельность мало увлекательная, нудная и отнюдь «не ленивая»…

Доминирующая сегодня в большинстве корпоративных ИТ инфраструктур платформа Microsoft уже достаточно давно использует единую для всех продуктов идеологию автоматизации управления с помощью технологии PowerShell. Именно PowerShell позволяет «ленивому» системному администратору создать исполняемый сценарий для решения абсолютно любой задачи. Более того, нередко бывает так, что решить задачу по настройке того или иного параметра системы без PowerShell если и невозможно, то крайне затруднительно. Другими словами, современному «ленивому» системному администратору без PowerShell-а «и не туды, и не сюды»…

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

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

При этом, большинство начинающих системных администраторов привыкают именно к разнообразным графическим интерфейсам, и сколь ни будь глубокое изучение PowerShell – инструмента, использующего в первую очередь текстовый интерфейс командной строки и файлы исполняемых сценариев, для многих таких администраторов, весьма не простой процесс, требующий времени, усилий и… понимания многих моментов объектно-ориентированного программирования. И вот тут-то зачастую и срабатывает барьер – изучение PowerShell требует, кроме зачастую дефицитного времени, еще и изучения и принятия целого ряда концепций, понятий и подходов, привычных программистам, но мало знакомых системным администраторам. А это не такой уж и маленький объем знаний…

Есть и другая «заковыка» в изучении PowerShell, как это не странно, мешающая освоить эту технологию в первую очередь специалистам «старой школы». Технология PowerShell появилась сравнительно недавно – меньше 10 лет назад. А свою всеохватывающую, в управлении продуктами Microsoft, роль достигла и того позже – около 5-6 лет тому назад. Все, ранее используемые в продуктах Microsoft, интерфейсы командной строки и среды написания/выполнения скриптов, отличаются от PowerShell как земля и небо.

Проще всего изучать PowerShell администраторам, имеющим опыт использования подобных технологий в различных UNIX системах. Но и тут есть один момент – PowerShell в весьма успешной реализации от Microsoft, ушел несколько дальше в своих возможностях, нежели его UNIX-собратья. Это и мощный новый механизм конвейеров, и полная интеграция с вездесущими WMI, AD DS, и другими технологиями Microsoft. В результате, эдакая «зашоренность» опытом использования подобных UNIX-инструментов может даже ограничить восприятие новых возможностей PowerShell, особенно, если пытаться использовать эту технологию без тщательного изучения, эдаким методом «научного тыка».

Универсальным решением для всех описанных ситуаций может стать обучение на интенсивном, специализированном, пятидневном, авторизированном курсе Microsoft «Автоматизация администрирования с Windows PowerShell 3.0 -10961».

Во-первых, сам курс предполагает изучение «с нуля» — в нем даются все основные знания и навыки, необходимые для эффективного использования PowerShell.

Во-вторых, весь курс насыщен практическими заданиями и примерами «из жизни», т.е. все практические занятия весьма подобны реальным повседневным задачам типичного системного администратора. От банальных, как стандартных, так и не очень, задач, которые может поставить руководство компании, до комплексных решений удаленного управления инфраструктурой предприятия в целом.

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

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

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

Владимир Степанец.
преподаватель-эксперт
Microsoft Certified Trainer

И вот, в преддверии Нового года, учебный центр МУК объявляет акцию «Стань ленивым администратором Microsoft, вложи свои сбережения в лучшее обучение».

Набор в группу на курс «Автоматизация администрирования с Windows PowerShell 4.0 -10961» открыт на 14-18 декабря 2015.
Обучение по другим технологиям Microsoft здесь в разделе Расписание

Еще курсы по теме Microsoft:
14 — 18 декабря — Практическое применение групповых политик в Windows/ Ureful Results of Group Policy in Windows
21 — 25 декабря — Развёртывание и управление Windows 10 с использованием корпоративных служб. Deploying and Managing Windows 10 Using Enterprise Services

Учебное пособие по Windows PowerShell для начинающих с примерами

Учебное пособие по Poweshell в Интернете