Учебник 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 в Интернете
- Учебники
- Файловая система
- Узнать PS
- Скриптинг
- PS с технологией
- Команды
- V6
- Администратор
- н.э.
- Вопросы
- Строковые операции
- Больше
✕
Учебники Powershell
- Учебники
- Администратор
- Команды
- V6
- н.э.
- Строковые операции
Скрипты Powershell
- Вопросы
- Файловая система
- Узнать PS
- Скриптинг
- PS с технологией
- Введение в Powershell
- Основы PowerShell
- Powershell Скачать
- Политика выполнения PowerShell
- Переменная хэшей массива PowerShell
- Сеансы Powershell
- Инструменты администрирования Powershell
- Powershell для Windows 7
- Powershell Создать загрузочный диск
- Системная ошибка
- Плагин Powershell
- WMI NET Primer
- Что нового в Powershell
- Powershell Msdeploy
- Powershell CSV
- Запустить скрипт Powershell
- Преимущества Powershell
- Командлеты Powershell
- Командлеты Получить помощь
- Командлеты Get Command
- Powershell получить член
- Командлеты Get-PSDrive
- Команды Poweshell
- Различия в V2 и V3
- Powershell CBT
- Параметры Powershell
- Команда формата вывода Powershell
- Параметры передачи Powershell
- Программирование с помощью Powershell
- Командлеты Powershell
- Подход Powershell
- Примеры Powershell
- Форматирование вывода Powershell
- Powershell против Cmd
- Отладка Powershell
- Исключения ошибок Powershell
- Powershell Trace
- Универсальность Powershell
- Снимки Powershell
- Консоль-Конфигурация-Настройка
- Powershell, если еще
- Переменная хэша массивов PowerShell
- Powershell Foreach
- Функция Powershell
- Файловая система Powershell
- Вопросы для собеседования с Powershell
- Часто задаваемые вопросы о Powershell
- Основы Powershell PDF
- 3 причины изучить PowerShell
- Строка Powershell
- Регулярные выражения-Использование-в-Powershell
- Язык Powershell
- Обработка текста Powershell
.Учебное пособие по
Powershell для начинающих: обучение за 1 день
- Home
Testing
- Back
- Agile Testing
- BugZilla
- Cucumber
- 000 J2000
- 000 J2000 Testing
- 000
- Назад
- JUnit
- LoadRunner
- Ручное тестирование
- Мобильное тестирование
- Mantis
- Почтальон
- QTP
- Назад
- Центр качества
- 0003000300030003 SoapUI
- Управление тестированием
- TestLink
SAP
- Назад
- ABAP
- APO
- Начинающий
- Basis
- BODS
- BI
- BPC
- CO
- Назад
- CRM
- Crystal Reports
- Crystal Reports
- FICO3
- Заработная плата
- Назад
- PI / PO
- PP
- SD
- SAPUI5
- Безопасность
- Менеджер решений
- Successfactors
- SAP Tutorials
4
- Web
- Apache
- AngularJS
- ASP.Net
- C
- C #
- C ++
- CodeIgniter
- СУБД
- JavaScript
- Назад
- Java
- JSP
- Kotlin
- Linux
- Linux
- Kotlin
- Linux
js
- Perl
- Назад
- PHP
- PL / SQL
- PostgreSQL
- Python
- ReactJS
- Ruby & Rails
- Scala
- SQL
- SQL
000
000
- UML
- VB.Net
- VBScript
- Веб-службы
- WPF
0003 SQL
000
0003 SQL
000
Обязательно учите!
- Назад
- Бухгалтерский учет
- Алгоритмы
- Android
- Блокчейн
- Business Analyst
- Создание веб-сайта
- CCNA
- Облачные вычисления
- 0003 COBOL
- 000 Compiler
- 9000 Встроенный
- 000 9000 Compiler
- Ethical Hacking
- Учебники по Excel
- Программирование на Go
- IoT
- ITIL
- Jenkins
- MIS
- Сети
- Операционная система
- 0003
- Назад
- Управление проектами Обзоры
- Salesforce
- SEO
- Разработка программного обеспечения
- VB A
Big Data
- Назад
- AWS
- BigData
- Cassandra
- Cognos
- Хранилище данных
- HBOps
- HBOps
- MicroStrategy
- Монго
0003
0003
.
Руководство по созданию сценариев Windows PowerShell для начинающих
Автоматизируйте его. Теперь, где этот сценарий…
Предупреждение: PowerShell вызывает привыкание.
Meet PowerShell Tutorial
Windows PowerShell — это объектно-ориентированный механизм автоматизации и язык сценариев с интерактивной оболочкой командной строки, предназначенный для помощи ИТ-специалистам в настройке систем и автоматизации административных задач. Вы можете найти его в любой современной ОС Windows, начиная с Windows 2008R2.Изучение Windows PowerShell похоже на обучение использованию универсального многофункционального инструмента. В этом посте я расскажу об основах создания сценариев PowerShell, чтобы вам было проще выполнять практически любую административную задачу, связанную с вашей ИТ-средой Windows.
Итак, приступим к изучению PowerShell.
PowerShell предлагает как параметр командной строки, так и интегрированную среду сценариев (ISE):
- Чтобы запустить командную строку PowerShell, введите powershell.exe в меню «Пуск» Windows.Вы увидите следующий экран:
- Чтобы запустить PowerShell ISE, введите powershell_ise.exe в меню «Пуск». Использование PowerShell ISE является предпочтительным способом работы с языком сценариев, поскольку он обеспечивает подсветку синтаксиса, автоматическое заполнение команд и другие функции автоматизации, которые упрощают разработку и тестирование сценариев.
Подготовка к запуску скриптов PowerShell
Скрипты PowerShell хранятся в файлах.ps1 файлы. По задумке вы не можете запустить сценарий, просто дважды щелкнув файл; это помогает избежать случайного повреждения ваших систем. Вместо этого, чтобы выполнить сценарий, щелкните его правой кнопкой мыши и выберите «Выполнить с помощью PowerShell»:
Кроме того, существует политика, ограничивающая выполнение сценария. Вы можете проверить эту политику, запустив команду Get-ExecutionPolicy в PowerShell:
. Вы получите одно из следующих значений:
- Restricted — сценарии не разрешены.Это настройка по умолчанию, поэтому вы увидите ее при первом запуске команды.
- AllSigned — Вы можете запускать сценарии, подписанные доверенным разработчиком. Если этот параметр установлен, перед выполнением сценарий попросит вас подтвердить, что вы хотите его запустить.
- RemoteSigned — Вы можете запускать свои собственные сценарии или сценарии, подписанные доверенным разработчиком.
- Без ограничений — Вы можете запустить любой сценарий, какой захотите.
Чтобы начать работу с PowerShell, вам необходимо изменить параметр политики с Restricted на RemoteSigned с помощью команды Set-ExecutionPolicy RemoteSigned:
Командлеты PowerShell
О командлетах
Командлет — это команда PowerShell с предопределенной функцией, похожей на оператор в языке программирования.Вот несколько ключевых вещей, которые нужно знать о командлетах:
- Существуют системные, пользовательские и настраиваемые командлеты.
- Командлеты выводят результаты как объект или как массив объектов.
- Командлеты могут получать данные для анализа или передавать данные в другой командлет с помощью каналов (я подробнее остановлюсь на каналах позже).
- Командлеты не чувствительны к регистру. Например, не имеет значения, набираете ли вы «Get-ADUser», «get-aduser» или «gEt-AdUsEr».
- Если вы хотите использовать несколько командлетов в одной строке, вы должны разделить их точкой с запятой (;).
Формат командлета
Командлет всегда состоит из глагола (или слова, которое функционирует как глагол) и существительного, разделенных дефисом (правило «глагол-существительное»). Например, некоторые из глаголов включают:
- Получить — Чтобы получить что-то
- Установить — Чтобы что-то определить
- Старт — Чтобы запустить что-то
- Стоп — Чтобы остановить что-то, что работает
- Out — для вывода чего-либо
- New — для создания чего-либо («new», конечно, не глагол, но он функционирует как единое целое)
Для практики попробуйте выполнить следующие командлеты:
- Get-Process — отображает процессы, запущенные в данный момент на вашем компьютере:
- Get-Service — показывает список служб с указанием их статуса
- Get-Content — показывает содержимое указанного файла (например, Get -Content C: \ Windows \ System32 \ drivers \ etc \ hosts)
Доступные командлеты
Хорошие новости — вам не нужно запоминать все командлеты.Вы можете вывести список всех командлетов, выполнив командлет Get-Help -Category, который вернет следующее:
. Вы также можете создать свои собственные настраиваемые командлеты.
Параметры
Каждый командлет имеет несколько параметров, которые определяют его действия. PowerShell ISE автоматически предложит все допустимые параметры и их типы после того, как вы введете командлет и дефис (-):
. Например, следующий командлет показывает все службы, имена которых начинаются с буквы «W»:
Get-Service — Имя W *
Если вы забыли параметры командлета, просто используйте сценарий, подобный следующему, который отобразит параметры для командлета Get-Process:
Get-Process | Get-Member
Если вы по-прежнему не можете найти нужный командлет, вы можете убедиться, что справка актуальна, а затем получить примеры для командлета (например, Get-Process), используя следующий сценарий:
Update -Help # обновить справочные данные Get-Help Get-Process -Examples
Псевдонимы
Вы также можете использовать псевдонимы, которые представляют собой сокращенные имена командлетов.Например, вместо «Get-Help» можно использовать просто «Help». Попробуйте выполнить следующие две команды и посмотрите, получите ли вы тот же результат:
- Start-Process notepad
- start notepad
Аналогичным образом, чтобы остановить этот процесс, вы можете использовать любую из следующих команд:
- Stop- Процесс -Name notepad
- spps -Name notepad
Чтобы увидеть все псевдонимы, выполните командлет Get-Alias.
Комментарии
Оставление комментариев в скрипте поможет вам и вашим коллегам лучше понять, что делает скрипт.Строковый комментарий — это одна строка, которая начинается со знака числа (#), а комментарии блока начинаются и заканчиваются числовыми знаками и угловыми скобками и распространяются на несколько строк.
Каналы
Канал передает данные от одного командлета к другому. Раньше я использовал канал для получения всех свойств объекта.
Например, если вы выполните следующий сценарий, вы получите все службы, отсортированные по их статусу:
Get-Service | Sort-Object -property Status
Вы также можете использовать конвейер для вывода текста в файл с помощью следующего сценария:
«Hello, World!» | Исходный файл C: \ ps \ test.txt
Можно использовать несколько каналов. Например, следующий сценарий перечисляет все службы, причем первый канал исключает остановленные службы, а второй канал ограничивает список только отображаемыми именами:
Get-Service | ГДЕ {$ _. Status -eq "Выполняется"} | ВЫБРАТЬ отображаемое имя # «$ _.» определяет текущий элемент в конвейере
Сводка
Давайте быстро подытожим ключевые моменты этого руководства по Windows PowerShell. Теперь вы знаете, как запустить PowerShell, как изменить политику выполнения, что такое командлет, как передавать данные с помощью конвейера и как получить свойства объекта.Имейте в виду, что если вы что-то забудете, вы всегда можете использовать командлет Get-Help.
Надеюсь, этот PowerShell для начинающих оказался вам полезен!
В следующих частях этого бесплатного руководства по PowerShell я расскажу о переменных, массивах и циклах, которые используются в сценариях PowerShell для упрощения администрирования серверов Windows.
А пока вы можете проверить следующие сценарии PowerShell, используемые ИТ-специалистами для решения конкретных случаев:
- Как получить отчеты о членстве в группах пользователей AD
- Как найти отключенных или неактивных пользователей в Active Directory
- Как найти неактивные компьютеры в Active Directory
- Как получить список просроченных учетных записей пользователей в AD
- Как найти заблокированные учетные записи пользователей в Active Directory
- Как вывести список всех учетных записей пользователей в системе Windows
- Мониторинг журналов событий с PowerShell
- Как настроить уведомление об изменении группы локальных администраторов с помощью PowerShell
- Как получить уведомление об истечении пароля в Active Directory с помощью PowerShell
- Запрос журнала событий с помощью PowerShell
- Пересылка журнала событий Windows в Windows Server 2008
- Сочетания клавиш для системных администраторов
- Как находить новых пользователей в Active Dire ctory с использованием PowerShell
- Office 365: настройка паролей пользователей на неограниченный срок
- Как найти неактивные компьютеры в Active Directory с помощью PowerShell
- Windows PowerShell и командная строка (cmd)
- Как управлять списками ACL файловой системы с помощью PowerShell
- Файл PowerShell Управление
- Как создавать новых пользователей Active Directory с помощью PowerShell
- Как добавлять и удалять группы и объекты AD в группах с помощью PowerShell
- Управление подразделениями и перемещение их объектов с помощью PowerShell
- Как автоматизировать сценарии PowerShell с помощью планировщика задач
- Как для создания, удаления, переименования, отключения и присоединения компьютеров к AD ssing PowerShell
А если вы только начинаете работать с PowerShell, я рекомендую следующие ресурсы:
.