Изучите PowerShell за месяц перерывов на обед, 4е изд., Охватывает Windows, Linux и macOS

Джеймс Петти, Трэвис Планк, Тайлер Леонхардт, Дон Джонс, Джеффри Хикс

 

Четвёртая редакция на английском языке: апрель 2022

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

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

Опубликовано Manning Publications Co.

20 Baldwin Road

PO Box 761

Shelter Island, NY 11964

ISBN 978-1-61729-696-3

www.packtpub.com

2022-04-04

 Состав исполнителей

Издания на английском языке
Авторы
Джеймс Петти
Трэвис Планк
Тайлер Леонхардт
Дон Джонс
Джеффри Хикс
Редактор по аудитории
Фрэнсис Лефковиц
Редактор технического развития
Майк Шипард
Редактор обзора
Алекс Драгосавльевич
Редактор производства
Дейдре Хиам
Редактор текста
Кэрри Эндрьюс
Корректор
Кэти Тиннант
Технический корректор
Шон Болан
Наборщик
Гордан Салинович
Изготовитель переплёта
Лесли Хаймс

 www.Manning.com

 Вступительное слово

Когда я сел писать это вступительное слово, моей первой мыслью было: "Об здесь есть где расчехлиться". Моё личное знакомство с PowerShell началось в 2005 году, примерно за год до того, как эта оболочка была представлена на конференции techEd в Барселоне в 2006 году. Книга "Изучение Wundows PowerShell за месяц перерывов на обед", прародитель этой книги, была далеко не самым первым моим томом по PowerShell. Джеффри Хикс и я написали три редакции Windows PowerShell: сначала TFM с SAPIEN Technologies. После этого, если вы можете себе это представить, я принял решение больше не писать книги по PowerShell! Но я быстро осознал, что в имеющемся наборе книг по PowerShel - которых к тому времени было более дюжины - не хватает одной из основных потребностей аудитории. Книги того времени преподавали PowerShell как язык программирования, нацеленный на довольно большую аудиторию программистов VBScript, имевшуюся на тот момент времени. Но сам PowerShell был нацелен на гораздо более широкую аудиторию: на не программистов.

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

У Месяца обедов, как серии книг, был непростой путь. Издатели книг работают с небольшой маржой, а запуск новой серии книг требует больших ресурсов. Другое издательство первоначально решило взяться за эту серию, но в последний момент отказалось. Мэннинг - и я надеюсь, это было для них фантастическим решением - сделало шаг навстречу и сказало: "Давайте сделаем это." Мы разработали новую концепцию оформления обложки, которая радикально отличалась от принятой в этой компании нормы и показывала, с какой готовностью они творчески подошли к этой новой серии.

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

Когда, наконец, Microsoft превратила PowerShell в открытый исходный код (!!!!) и кросс- платформенный (!!!!!!!), мы осознали, что пришло время для новой книги Месяца обедов - книги, посвящённой PowerShell, а не только Windows PowerShell.

Но к тому моменту мы с Джеффом слегка выгорели на ниве писательства. Моя собственная карьера двигалась в ином направлении - я дал согласие на должность вице- премьера в своей компании и знал, что мне будет трудно идти в ногй с быстро меняющимся и расширяющимся миром PowerShell. Моя последняя книга, "Shell of an Idea: The Untold History of PowerShell,", во многом стала любовным письмом сообществу и команде разработчиков, которые сопровождали и поддерживали меня более десяти лет. В ней рассказывалось о том как PowerShell едва лишь воплотилась в жизнь, а я, когда писал, знал, что у меня больше не будет времени писать о грядущем PowerShell.

Вот почему я так рад, что вступили авторы данного тома. В сообществе PowerShell в целом, полно невероятно щедрых людей, всегда готовых ответить на вопрос и помочь вам. "Уход" для меня также означал отказ от PowerShell.org, вебсайта, соучредителем которого я выступал, а также поддерживавшей его некоммерческой организации. Это означало и отказ от PowerShell + DevOps Global Summit, конференции, которую я изначально финансировал со своей карты American Express. Однако сообщество PowerShell, как всегда, активизировалось: новые люди дали своё согласие на поддержку этой организации, причём не только в её рабочем состоянии, но также и в росте. Джеймс Петти, один из соавторов данной книги, это один из таких парней, и я бесконечно благодарен ему и его команде за то, что они поддержали сам дух сообщества.

Эта книга по большей части основана на том повествовании, которое я создал для самого первого Месяца обедов, и которое мы Джеффом Хиксом совершенствовали в трёх изданиях, а также на книге "Изучение сценариев PowwerShell за месяц перерывов на обед", которая настолько же актуальна и сегодня, как и тогда, когда мы впервые написали её. Но данная книга вырывается за рамки Windows и рассматривает PowerShell как истинного гражданина мира: вы найдёте образцы, применимые к тому, применяете ли вы PowerShell в Windows, Linux или macOS - гигантское обязательство для этих авторов, принимая во внимание разительные отличия между данными операционными системами.

Я по- прежнему невероятно благодарен всему сообществу PowerShellю Они заставили меня почувствовать, что меня приветствуют, высоко ценят и признают полезным - я надеюсь, что все могут испытывать это в какой- то момент. Я призываю вас изучить данное сообщество через PowerShell.org или многие иные добровольные вебсайты, репозитории GitHub, учётные записи в Twitter и прочие источники. Вы останетесь довольными, что предприняли это.

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

Я выражаю надежду, что ваше путешествие по PowerShell, вне зависимости от того, только ли оно начинается, либо вы уже погружены в него, окажется столь же плодотворным и доставляющим удовольствие, как и моё. Я надеюсь, что вы поддержите авторов этой книги, потому как они приложили огромные усилия чтобы передать её в ваши руки. А также я выражаю чаяния, что вы овладеете своими вновь обретёнными познаниями и отыщите способы поделиться ими с другими, кто только лишь приступает к своему путешествию. Вне зависимости от того, что уже было сказано или написано про PowerShell, ваш взгляд на него будет тем доказательством, которое поможет кому- то совладать с моментом "ага!", который стартует их собственный успех в PowerShell.

- Дон Джонс

 Предисловие

Ни разу за миллион лет я бы не предположил, что однажды меня попросят помочь написать какую- нибудь техническую книгу, не говоря уже о четвёртом издании книги "Изучите PowerShell за месяц перерывов на обед" - той самой книги, с которой я пустился в путь много лет назад.

Когда я услышал, что Трэвис Планк и Тайлер Леонхардт подписали с Мэннинг контракт на написание четвёртого издания этой успешной книги, я подумал: кто способен написать следующее издание лучше двух людей из команды PowerShell? Для сохранения выигрышного стиля Дона Джонса и Джеффри Хикса из более ранних версий, Тайлер и Трэвис будут работать только с их первоначальными главами. Однако, поскольку PowerShell теперь доступен для Linux и macOS, данная книга сосредоточится на этих двух операционных системах и продемонстрирует открытые/ кроссплатформенные возможности PowwerShell 7, причём книга будет носить название "Изучите PowerShell за месяц перерывов на обед", а не "Изучите Windows PowerShell за месяц перерывов на обед", как назывались первое, второе и третье издания этой классической книги. Св волнением увидев расширенную и обновлённую версию, я сделал покупку MEAP и читал главы по мере их выхода.

Перенесёмся на год вперёд. Выпущен PowerShell 7. К тому же, читатели и первые рецензенты книги дали понять, что Windows по- прежнему является той ОС, в которой проводят своё время большинство администраторов. Поэтому меня пригласили закончить данную книгу и обновить её с тем, чтобы охватить самую последнюю версию PowerShell и саму ОС Windows. Я взял то, что начали Тайлер и Трэвис, и продолжил этот проект с тем, чтобы были представлены все три операционные системы. Книга оказалась несколько тяжеловатой для Windows, но этого и следовало ожидать, поскольку, опять же, PowerShell обладает бо́льшей функциональностью в Widows. Я пришёл из корпоративной среды, ежедневно применяя PowerShell для сопровождения серверов Windows.

Для меня оказалось удивительным путешествием пройти весь круг, от прочтения самой первой книги до помощи в написании данного издания. Если вы только приступаете к работе с PowerShell или являетесь опытным администратором, ищущим самые последние советы и рекомендации, я надеюсь, эта книга понравится вам.

- Джеёмс Петти

 Благодарности

Я выражаю огромную благодарность своей жене Кейси за поддержку меня на протяжении данного проекта. Я также благодарю Дона Гэннона- Джонса за его сопровождение, наставничество и поощрение присоединиться к данному проекту. Для меня этот путь оказался удивительным, обойдя весь круг от прочтения самой первой книги Дона Месяца перерывов на обед по PowerShell до помощи в написании этого издания.

Я хотел бы поблагодарить сотрудников Мэннинг: Дейдре Хиам, редактора моего проекта; Кэрри Эндрюса, моего редактора; Кэти Теннант, моего корректора; и Шона Болана, моего технического корректора.

Спасибо всем рецензентам: Альдо Солис Зентено, Бирну Себарте, Брэду Хайсмиту, Брюсу Бергману, Фостеру Хейнсу, Джулиано Латини, Джеймсу Мэтлоку, Яну Винтербергу, Джейну Ноэсгаард Ларсену, Жан-Себастьян Жерве, Камешу Ганесану, Марселю ван ден Бринку, Максу Альмонте, Мишелю Кломпу, Оливеру Кортену, Полу Лаву, Питеру Брауну, Ранджит Сахай, Рэю Бойсену, Ричарду Майклзу, Роману Левченко, Шону Болану, Саймону Сейагу, Стефану Туральски, Стивену Гудману, Тейну Тан Хтун и Винсенту Делькойну. Ваши предложения помогли улучшить эту книгу.

 Об этой книге

Мы счастливы, что вы приняли решение присоединиться к нам в этом путешествии длиной в месяц! Месяц кажется длинным промежутком времени, но он пройдёт не зря, мы обещаем.

Кто должен прочесть эту книгу

Эта книга предназначена широкому кругу читателей; однако, основная аудитория - это те, кто только приступает к работе с PowerShell. Должностными обязанностями могут быть службы технической поддержки или администраторы серверов.

Наибольшая часть необходимых предварительных сведений содержится в Главе 1, но вот несколько моментов, о которых следует упомянуть заранее. Во- первых, мы настоятельно рекомендуем вам следовать примерам из этой книги. Для оптимального опыта мы предлагаем вам запускать всё в виртуальной машине. Мы сделали всё возможное, чтобы все примеры были бы кроссплатформенными, но, как вы обнаружите, имеется несколько глав, специфичных именно для Windows.

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

О самом коде

Эта книга содержит большое число фрагментов кода. Большинство из них короткие, поэтому вы должны быть способны запросто набирать их. На самом деле, мы рекомендуем вам набирать их, поскольку выполнение этого поспособствует закреплению существенного навыка PowerShell: аккуратного набора! Фрагменты более длинного кода в листингах доступны для выгрузки с вебстраницы этой книги на вебсайте издателя.

Сказав это, вы обязаны знать о некоторых соглашениях. Код всегда проявляется неким особым кодом, в точности как в этом примере:


Get-CimInstance –class Win32_OperatingSystem
➥ –computerName SRV-01
 	   

Этот образец также иллюстрирует применяемый в данной книге символ продолжения строки. Он указывает что эти две строки должны набираться в PowerShell как одна строка. Иными словами, не нажимайте Enter или Return (Ввод) после Win32_OperatingSystem - просто продолжайте набор. PowerShell допускает длинные строки, однако страницы в этой книге способны содержать лишь столько {Прим. пер.: в нашей версии представления перевода в формате html подобный код снабжается блоком с прокруткой}.

Порой код к тому же жирный для выделения кода, который был изменён по сравнению с предыдущим шагом в этой главе, например, когда в уже имеющуюся строку кода добавляются новые свойства. А порой вы также встречаете такой код внутри самого текста, например, когда мы пишем Get-Command.Это просто позволяет вам знать, что вы смотрите на команду, параметр или иной элемент, который вы бы набирали внутри своей оболочки.

В- четвёртых, вы обнаружите элемент, к которому мы ещё вернёмся в ряде глав: символ обратной кавычки (`). Вот, например:


Invoke-Command –scriptblock { Get-ChildItem } `
  -computerName SRV-01,localhost,DC02
 	   

Данный символ в самом конце нашей первой строки это не потерявшаяся капелька чернил - это всамделишный символ, который вы и вправду набрали бы. На клавиатуре US такая левая кавычка (или обратный апостроф) обычно где-то слева вверху, под клавишей Esc, в том же самом месте гди и символ тильда (~). Когда вы видите такую левую кавычку в листинге кода, набирайте её именно так. Более того, когда она появляется в самом конце строки - как в предыдущем примере - убедитесь что это самый последний символ в данной строке. Если вы позволите после него появиться любым пробелам или табуляциям, такая левая кавычка не сработает как надо, как и сам пример кода.

Вы можете получить исполняемые фрагменты кода из liveBook этой книги (через Интернет). Полный код из этой книге код можно доступен для выгрузки с вебсайта Manning, а также из репозитория Github.

Форум обсуждения liveBook

Покупка Learn PowerShell in a Month of Lunches, Fourth Edition также включает в себя свободный доступ к платформе liveBook чтения Manning через Интернет. Применяя привилегированные возможности обсуждения, вы можете добавлять комментарии для этой книги глобально, либо для определённых разделов или параграфов. Здесь легко выполнять пометки для себя, задавать технические вопросы и отвечать на них, а также получать помощь от авторов и прочих пользователей. Для получения доступа к этому форуму перейдите по ссылке https://livebook.manning.com/book/learn-powershell-in-a-month-of-lunches/discussion. Также узнать дополнительные сведения о форумах Мэннинг и поведении там вы можете на https://livebook.manning.com/discussion.

Обязательство Мэннинг перед своими читателями состоит в том, чтобы предоставить место, в котором может состояться содержательный диалог между читателями и читателями и авторами. Это не обязательство по какому- то конкретному объёму участия со стороны авторов, чей вклад в форум остаётся добровольным (и не оплачиваемым). Мы рекомендуем вам задавать им некоторые сложные вопросы, чтобы они не утратили своего интереса! Этот форум и его архивы предыдущих обсуждений будут доступны на вебсайте издателя пока данная книга пребывает в печати.

Дорожная карта

Глава 1. Прежде чем вы начнёте

Глава 2. Познакомьтесь с PowerShell

Глава 3. Применение системы подсказок

Глава 4. Выполнение команд

Глава 5. Работа с поставщиками

Глава 6. Конвейер: соединение команд

Глава 7. Добавление команд

Глава 8. Объекты: данные с другим названием

Глава 9. Промежуток на практику

Глава 10. Конвейер, глубже

Глава 11. Форматирование: и почему это делается справа

Глава 12. Фильтрация и сопоставление

Глава 13. Удалённое управление: один- к- одному и один- ко- многим

Глава 14. Многозадачность с фоновыми заданиями

Глава 15. Работа со множеством объектов по одному за раз

Глава 16. Переменные: место для хранения вашего материала

Глава 17. Ввод и вывод

Глава 18. Сеансы: удалённое управление с меньшей работой

Глава 19. Вы называете это составлением сценариев?

Глава 20. Улучшение вашего параметризованного сценария

Глава 21. Применение регулярных выражений для синтаксического разбора текстовых файлов

Глава 22. Применение ещё чьих- то сценариев

Глава 23. Добавление логики и циклов

Глава 24. Обработка ошибок

Глава 25. Технологии отладки

Глава 26. Советы, трюки и техники

Глава 27. Никогда не заканчивайте

Об авторах

Джеймс Петти президент и CEO DevOps Collective, который запускает PowerShell.org, а также Microsoft Cloud and Datacenter MVP. Он организует каждый апрель проведение PowerShell + DevOps Global Summit, а также проводимый осенью DevOps + Automation Summit, а также поспособствовал организации множества суббот PowerShell в Соединённых Штатах. Соавтор первого тома The PowerShell Conference Book, он также выступает соучредителем группы пользователей PowerShell в Чаттануге и сопредседателем PowerShell on the River, двухдневной конференции PowerShell, проводимой в Чаттануге, штат Теннесси.

Трэвис Планк был инженером-программистом в различных командах PowerShell начиная с 2013 года, а в Microsoft с 1999 года. Он участвовал в разработке PowerShell с открытым исходным кодом и перенёс основной механизм PowerShell вскоре после того, как PowerShell превратился в открытый исходный код.

Тайлер Леонхардт работает инженером-программистом в команде PowerShell около 2 лет, а в Microsoft — почти 3 года. Участник команды PowerShell.

Джеффри Хикс ветеран ИТ с более чем 30-летним опытом, большую часть которого он провёл в качестве консультанта по ИТ- инфраструктуре, специализируясь на серверных технологиях Microsoft, уделяя особое внимание автоматизации и эффективности. Он является многолетним лауреатом премии Microsoft MVP. В наши дни он работает как независимый автор, преподаватель и соавтор нескольких книг, пишет для многочисленных изданий, является автором Pluralsight и часто выступает на технологических конференциях и в группах пользователей. Вы можете следить за Джеффом в Twitter . Вы найдёте его работы в Интернете по адресам https://jdhitsolutions.com/blog и https://jeffhicks.substack.com.

Об обложке

 Содержание

Вводная часть
Вступительное слово
Предисловие
Об авторах
Благодарности
Об этой книге
Глава 1. Прежде чем вы начнёте
Почему вы больше не можете игнорировать PowerShell
Жизнь без PowerShell
Жизнь с PowerShell
Windows, Linux и macOS, о боже
Для кого эта книга?
Как пользоваться этой книгой?
Главы
Практические лабораторные занятия
Дополнительные материалы
Дальнейшее исследование
Выше и дальше
Настройка вашей лабораторной среды
Установка PowerShell
Контакты с нами
Немедленная действенность при помощи PowerShell
Глава 2. Познакомьтесь с PowerShell
PowerShell в Windows
PowerShell в macOS
Установка в macOS
PowerShell в Linux (Ubuntu 18.04)
Установка в Ubuntu 18.04
Visual Studio Code и расширение PowerShell
Установка Visual Studio Code и расширения PowerShell
Знакомство с Visual Studio Code
Персонализация Visual Studio Code и расширения PowerShell
Это снова и снова класс набора
Что представляет собой версия?
Лабораторные занятия
Глава 3. Применение системы подсказок
Система подсказок: как вы обнаруживаете команды
Обновляемая подсказка
Запрос подсказок
Применение подсказок для нахождения команд
Интерпретация самой подсказки
Наборы параметров и общие параметры
Необязательные и обязательные параметры
Позиционные параметры
Поиск позиционных параметров в сводках синтаксиса
Поиск позиционных параметров во всей подсказке
Значения параметров
Поиск примеров команд
Доступ к темам "about"
Интернет доступ к подсказке
Лабораторные занятия
Ответы лабораторных занятий
Глава 4. Выполнение команд
Давайте общаться безопасно
Политика выполнения
Не создания сценария, а исполнение команд
Анатомия команд
Соглашение об именовании командлетов
Псевдонимы: клички для команд
Применение ярлыков
Усечение имён параметров
Применение псевдонимов имён параметров
Применение позиционных параметров
Поддержка внешних команд
Работа с ошибками
Общие моменты путаницы
Набор имён командлетов
Набор параметров
Лабораторные занятия
Ответы лабораторных занятий
Глава 5. Работа с поставщиками
Что представляет собой поставщик?
Понимание того как организована имеющаяся файловая система
Навигация по файловой системе
Применение символов подстановки и буквальных путей
Работа с прочими поставщиками
Реестр Windows
Лабораторные занятия
Ответы лабораторных занятий
Глава 6. Конвейер: соединение команд
Соединение одной команды с другой: меньше работы для вас
Экспорт в файл
Экспорт в CSV
Экспорт в JSON
Экспорт в XML
Out-File
Сопоставление файлов
Конвейер в файл
Преобразование в HTML
Применение командлетов, которые изменяют саму систему: уничтожение процессов
Общие моменты путаницы
Лабораторные занятия
Ответы лабораторных занятий
Глава 7. Добавление команд
Как одна оболочка может делать всё
Расширения: поиск и установка модулей
Расширения: поиск и добавление модулей
Конфликты команд и удаление расширений
Воспроизведение новыми модулями
Общие моменты путаницы
Лабораторные занятия
Ответы лабораторных занятий
Глава 8. Объекты: данные с другим названием
Что такое объекты?
Разбираемся зачем PowerShell пользуется объектами
Обнаружение объектов: Get-Member
Применение атрибутов объектов, или свойств
Применение действий объектов, или методов
Сортировка объектов
Выбор нужных свойств
Объекты до самого конца
Общие моменты путаницы
Лабораторные занятия
Ответы лабораторных занятий
Глава 9. Промежуток на практику
Определение задачи
Поиск команды
Изучение использования команд
Советы для самостоятельного обучения
Лабораторные занятия
Ответы лабораторных занятий
Глава 10. Конвейер, глубже
Конвейер: включение мощности при меньшем наборе
Как PowerShell передаёт данные вниз по конвейеру
План A: Ввод конвейера по значению
План B: Ввод конвейера по имени свойства
Когда вещи не выстраиваются в линию: персонализация свойств
Работа с Azure PowerShell
Заключённые в скобки команды
Выделение значения из отдельного свойства
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 11. Форматирование: и почему это делается справа
Форматирование: сделать то что вы видите красивее
Работа с форматированием по умолчанию
Форматирование таблиц
Форматирование списков
Форматирование широких списков
Создание персональных столбцов и записей списка
Выход: в файл или в свой хост
Ещё один выход: GridViews
Общие моменты путаницы
Всегда форматируйте правильно
Один тип объекта за раз, пожалуйста
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 12. Фильтрация и сопоставление
Заставляем оболочку выдавать вам именно то, что вам нужно
Фильтрация слева
Применение операторов сопоставления
Фильтрация объектов из конвейера
Применение итеративной модели командной строки
Общие моменты путаницы
Фильтр слева, пожалуйста
Когда допускается $_
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 13. Удалённое управление: один- к- одному и один- ко- многим
Основная мысль за удалённым PowerShell
Удалённое взаимодействие на устройствах Windows
Удалённое взаимодействие на устройствах macOS и Linux
Кросс- платформенное удалённое взаимодействие
Настройка PSRP поверх SSH
macOS и Linux
Настройка SSH в Windows
Обзор PSRP поверх SSH
Обзор WinRM
Применение Enter-PSSession и Exit-PSSession для удалённой работы один- к- одному
Применение Invoke-ScriptBlock для удалённой работы один- ко- многим
Различия между удалёнными и локальными командами
Преобразованные из последовательных в параллельные объекты
Сопоставление локальной и удалённой обработки
Но постойте, есть ещё что-то
Команды для управления заданиями
Общие моменты путаницы
Лабораторные занятия
Ответы лабораторных занятий
Глава 14. Многозадачность с фоновыми заданиями
Заставляем PowerShell выполнять множество вещей в одно время
Сопоставление синхронного и асинхронного
Создание задания процесса
Создание задания потока
Удалённая работа как задание
Задания в природе
Получение результатов задания
Работа с дочерними заданиями
Общие моменты путаницы
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 15. Работа со множеством объектов по одному за раз
Предпочтительный способ: пакетные командлеты
Способ CIM: активация методов
План резервного копирования: перечисление объектов
Заставляем командлеты работать на вас
Давайте ускорим вещи
Общие моменты путаницы
Какой путь является верным?
Убывающая отдача для параллельности ForEach
Документация метода
Путаница ForEach-Object
Лабораторные занятия
Ответы лабораторных занятий
Глава 16. Переменные: место для хранения вашего материала
Введение в переменные
Сохранение значений в переменных
Применение переменных: забавные трюки с кавычками
Сохранение множества объектов в переменной
Работа с отдельными объектами в переменной
Работа со множеством объектов в переменной
Другие способы работы со множеством объектов
Раскрутка свойств и методов в PowerShell
Дополнительные трюки с двойными кавычками
Объявление типа переменной
Команды для работы с переменными
Устоявшиеся практики переменной
Общие моменты путаницы
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 17. Ввод и вывод
Приглашение на ввод и отображение сведений
Read-Host
Write-Host
Write-Output
Другие способы записи
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 18. Сеансы: удалённое управление с меньшей работой
Создание и применение повторно используемых сеансов
Enter-PSSession с объектами сеансов
Invoke-Command с объектами сеансов
Удалённая работа в неявном виде: импорт сеанса
Применение отключённых сеансов
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 19. Вы называете это составлением сценариев?
Не программирование, больше похоже на пакетные файлы
Превращение команд в повторяемые
Параметризация команд
Создание параметризованного сценария
Документирование вашего сценария
Один сценарий, один конвейер
Быстрый взгляд на сферу
Лабораторные занятия
Ответы лабораторных занятий
Глава 20. Улучшение вашего параметризованного сценария
Отправная точка
Как заставить PowerShell выполнять тяжёлую работу
Превращение параметров в обязательные
Добавление синонимов параметров
Верификация параметров ввода
Добавление прогрева и расплывчатости в подробный вывод
Лабораторные занятия
Ответы лабораторных занятий
Глава 21. Применение регулярных выражений для синтаксического разбора текстовых файлов
Основная цель регулярных выражений
Пример синтаксиса regex
Применение regex с -Match
Применение regex с Select-String
Лабораторные занятия
Ответы лабораторных занятий
Дальнейшее исследование
Глава 22. Применение ещё чьих- то сценариев
Собственно сценарий
Блок параметров
Блок процесса
Это пошаговое обследование
Лабораторные занятия
Ответы лабораторных занятий
Глава 23. Добавление логики и циклов
Foreach и Foreach-Object
Foreach
Foreach-Object
Foreach-Object -Parallel
While
Do While
Лабораторные занятия
Ответы лабораторных занятий
Глава 24. Обработка ошибок
Разбираемся с ошибками и исключительными ситуациями
Плохая обработка
Две причины обработки исключительных ситуаций
Обработка исключительных ситуаций
Обработки исключительных ситуаций для не команд
Двигаемся далее с обработкой исключительных ситуаций
Лабораторные занятия
Ответы лабораторных занятий
Глава 25. Технологии отладки
Выводим всё
По одной строке за раз
Эй, сценарий, остановись прямо тут... при помощи точек прерывания
Лабораторные занятия
Глава 26. Советы, трюки и техники
Профили, приглашения на ввод и цвета: персонализация вашей оболочки
Профили PowerShell
Персонализация вашего приглашения на ввод
Регулировка цветов
Операторы: -as, -is, -replace, -join, -split, -contains, -in
-as и -is
-replace
-join и -split
-contains и -in
Манипуляция со строками
Манипуляция с датами
Работаем с датами WMI
Настройка значений параметров по умолчанию
Воспроизведение через блоки сценариев
Дополнительные советы, трюки и техники
Глава 27. Никогда не заканчивайте
Идеи для дальнейшего исследования
"Теперь, когда я прочёл эту книгу, с чего мне начать?"
Другие ресурсы, которые вы полюбите
Дополнение A. Шпаргалка PowerShell
Указатель