Изучите PowerShell за месяц перерывов на обед, 4е изд., Охватывает Windows, Linux и macOS
Copyright © 2022 Manning Publications Co.
|
Данный документ предоставляется по лицензии Creative Commons Attribution 3.0 License, за исключением разделов со специальными оговорками. |
Четвёртая редакция на английском языке: апрель 2022
Никакая часть этой книги не может быть воспроизведена, сохранена в какой- то системе извлечения или передачи в любом виде или посредством электронного, механического, фотографического или иного способа без получения первичного письменного разрешения публикующей стороны.
Многие из обозначений, используемых производителями и продавцами для их различения продуктов, считаются товарными знаками. В тех случаях, когда эти обозначения фигурируют в книге, и Manning Publications была осведомлена о заявке на товарный знак, обозначения были напечатаны в первоначальных заглавных буквах либо всем заглавием.
Опубликовано Manning Publications Co.
20 Baldwin Road
PO Box 761
Shelter Island, NY 11964
ISBN 978-1-61729-696-3
2022-04-04
- Авторы
- Джеймс Петти
- Трэвис Планк
- Тайлер Леонхардт
- Дон Джонс
- Джеффри Хикс
- Редактор по аудитории
- Фрэнсис Лефковиц
- Редактор технического развития
- Майк Шипард
- Редактор обзора
- Алекс Драгосавльевич
- Редактор производства
- Дейдре Хиам
- Редактор текста
- Кэрри Эндрьюс
- Корректор
- Кэти Тиннант
- Технический корректор
- Шон Болан
- Наборщик
- Гордан Салинович
- Изготовитель переплёта
- Лесли Хаймс
Когда я сел писать это вступительное слово, моей первой мыслью было: "Об здесь есть где расчехлиться". Моё личное знакомство с 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. Применение системы подсказок
Глава 5. Работа с поставщиками
Глава 6. Конвейер: соединение команд
Глава 8. Объекты: данные с другим названием
Глава 9. Промежуток на практику
Глава 11. Форматирование: и почему это делается справа
Глава 12. Фильтрация и сопоставление
Глава 13. Удалённое управление: один- к- одному и один- ко- многим
Глава 14. Многозадачность с фоновыми заданиями
Глава 15. Работа со множеством объектов по одному за раз
Глава 16. Переменные: место для хранения вашего материала
Глава 18. Сеансы: удалённое управление с меньшей работой
Глава 19. Вы называете это составлением сценариев?
Глава 20. Улучшение вашего параметризованного сценария
Глава 21. Применение регулярных выражений для синтаксического разбора текстовых файлов
Глава 22. Применение ещё чьих- то сценариев
Глава 23. Добавление логики и циклов
Глава 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. Прежде чем вы начнёте
- Глава 2. Познакомьтесь с PowerShell
- Глава 3. Применение системы подсказок
- Глава 4. Выполнение команд
- Глава 5. Работа с поставщиками
- Глава 6. Конвейер: соединение команд
- Глава 7. Добавление команд
- Глава 8. Объекты: данные с другим названием
- Что такое объекты?
- Разбираемся зачем PowerShell пользуется объектами
- Обнаружение объектов: Get-Member
- Применение атрибутов объектов, или свойств
- Применение действий объектов, или методов
- Сортировка объектов
- Выбор нужных свойств
- Объекты до самого конца
- Общие моменты путаницы
- Лабораторные занятия
- Ответы лабораторных занятий
- Глава 9. Промежуток на практику
- Глава 10. Конвейер, глубже
- Конвейер: включение мощности при меньшем наборе
- Как PowerShell передаёт данные вниз по конвейеру
- План A: Ввод конвейера по значению
- План B: Ввод конвейера по имени свойства
- Когда вещи не выстраиваются в линию: персонализация свойств
- Работа с Azure PowerShell
- Заключённые в скобки команды
- Выделение значения из отдельного свойства
- Лабораторные занятия
- Ответы лабораторных занятий
- Дальнейшее исследование
- Глава 11. Форматирование: и почему это делается справа
- Форматирование: сделать то что вы видите красивее
- Работа с форматированием по умолчанию
- Форматирование таблиц
- Форматирование списков
- Форматирование широких списков
- Создание персональных столбцов и записей списка
- Выход: в файл или в свой хост
- Ещё один выход: GridViews
- Общие моменты путаницы
- Лабораторные занятия
- Ответы лабораторных занятий
- Дальнейшее исследование
- Глава 12. Фильтрация и сопоставление
- Глава 13. Удалённое управление: один- к- одному и один- ко- многим
- Основная мысль за удалённым PowerShell
- Настройка PSRP поверх SSH
- Обзор PSRP поверх SSH
- Обзор WinRM
- Применение Enter-PSSession и Exit-PSSession для удалённой работы один- к- одному
- Применение Invoke-ScriptBlock для удалённой работы один- ко- многим
- Различия между удалёнными и локальными командами
- Но постойте, есть ещё что-то
- Команды для управления заданиями
- Общие моменты путаницы
- Лабораторные занятия
- Ответы лабораторных занятий
- Глава 14. Многозадачность с фоновыми заданиями
- Заставляем PowerShell выполнять множество вещей в одно время
- Сопоставление синхронного и асинхронного
- Создание задания процесса
- Создание задания потока
- Удалённая работа как задание
- Задания в природе
- Получение результатов задания
- Работа с дочерними заданиями
- Общие моменты путаницы
- Лабораторные занятия
- Ответы лабораторных занятий
- Дальнейшее исследование
- Глава 15. Работа со множеством объектов по одному за раз
- Глава 16. Переменные: место для хранения вашего материала
- Введение в переменные
- Сохранение значений в переменных
- Применение переменных: забавные трюки с кавычками
- Сохранение множества объектов в переменной
- Дополнительные трюки с двойными кавычками
- Объявление типа переменной
- Команды для работы с переменными
- Устоявшиеся практики переменной
- Общие моменты путаницы
- Лабораторные занятия
- Ответы лабораторных занятий
- Дальнейшее исследование
- Глава 17. Ввод и вывод
- Глава 18. Сеансы: удалённое управление с меньшей работой
- Глава 19. Вы называете это составлением сценариев?
- Глава 20. Улучшение вашего параметризованного сценария
- Глава 21. Применение регулярных выражений для синтаксического разбора текстовых файлов
- Глава 22. Применение ещё чьих- то сценариев
- Глава 23. Добавление логики и циклов
- Глава 24. Обработка ошибок
- Глава 25. Технологии отладки
- Глава 26. Советы, трюки и техники
- Профили, приглашения на ввод и цвета: персонализация вашей оболочки
- Операторы: -as, -is, -replace, -join, -split, -contains, -in
- Манипуляция со строками
- Манипуляция с датами
- Работаем с датами WMI
- Настройка значений параметров по умолчанию
- Воспроизведение через блоки сценариев
- Дополнительные советы, трюки и техники
- Глава 27. Никогда не заканчивайте
- Дополнение A. Шпаргалка PowerShell
- Указатель