Глава 1. Прежде чем вы начнёте
Содержание
PowerShell только что перевалил за 15 лет (14 ноября 2021 года). Трудно поверить, что он существует столь долго, но всё ещё имеется большое число ИТ- специалистов, которые пока не применяли его. Мы понимаем - в сутках слишком мало часов, а вы уже привыкли делать вещи так, как делали всегда. Или, может быть, ваш сотрудник по кибербезопасности не разрешит вам включить PowerShell потому как его могут применять лишь плохие парни. В любом случае, мы рады что вы смогли присоединиться к нам в нашем приключении. Мы давно пользуемся PowerShell. А на самом деле, двое из нас, Джеймс и Тайлер, и в самом деле изучали PowerShell на более ранних версиях этой самой книги.
примерно в 2009 году в нашей отрасли произошёл огромный сдвиг когда была реализована новая концепция PowerShell. Это не язык сценариев и не язык программирования, поэтому способ обучения PowerShell также должен измениться. На самом деле PowerShell является оболочкой командной строки, которой вы запускаете утилиты командной строки. Как и у всех достойных оболочек, у него есть возможности составления сценариев, но вам не обязательно ими пользоваться, и уж точно не обязательно начинать с них.
Все предыдущие издания данной книги были результатом данного культурного сдвига, и мы сохраняем тот же самый образ мышления. Это лучшее из того, что мы когда- либо придумали чтобы обучать PowerShell кого бы то ни было, кто может не обладать опытом написания сценариев (хотя, конечно же, это не повреди, если вы им владеете). Но прежде чем пы перейдём к своей инструкции, давайте подготовим сцену для вас.
Batch. KiXtart. VBScript. Посмотрим правде в глаза, PowerShell не является самой первой попыткой Microsoft (или кого либо ещё) предоставить возможности автоматизации администраторам Windows. Мы считаем важным разобраться с тем, почему вам следует позаботиться о PowerShell - если вы сделаете это, потраченное вами на изучение PowerShell время окупится сполна. Давайте начнём с рассмотрения того, какой была жизнь до появления PowerShell, и рассмотрим преимущества применения данной оболочки.
Администраторы Windows всегда были рады щёлкнуть мышью в своём графическом интерфейсе пользователя (GUI) для выполнения своей работы. В конце концов, именно в графическом интерфейсе и состоит весь смысл Windows - данная операционная система не носит названия Text, помимо всего прочего. Графические интерфейсы великолепны, потому как они позволяют вам узнавать что вы можете делать. Вы помните как вы впервые открыли Пользователи и Компьютеры в Active Directory? Возможно вы наводили курсор на значки и читали всплывающие подсказки, выпадающие меню и щёлкали правой кнопкой мышью - всё то, чтобы увидеть то что доступно. Графические интерфейсы упрощают изучение инструментария. К сожалению, графические интерфейсы обладают нулевым выходом от подобных инвестиций. Когда вам требуется 5 минут для создания в Active Directory нового пользователя (при условии что вы заполняете большое число полей, это вполне разумная оценка), вы никогда не добьётесь большего. На сотню пользователей вы потратите 500 минут - нет никакого иного способа, кроме как научиться набирать текст и быстрее кликать для ускорения данного процесса.
Microsoft пыталась справляться с этой задачей несколько бессистемно, а VBSript, вероятно, был её самой успешной попыткой. Возможно, вам потребовался бы час для написания VBScript, который смог бы импортировать новых пользователей из файла CSV, но после того как вы потратите на это час, создание пользователей в будущем займёт всего несколько секунд. ПроОсновная проблема с VBScript в том, что Microsoft не прилагала усилий для его сопровождения. Microsoft нужно было помнить о том, чтобы превращать вещи VBScript в более доступные, а когда разработчики позабыли (или не успели), вы увязли. Хотите изменить IP- адрес сетевого адаптера при помощи VBScript? Ладно, вы можете. Желаете проверить скорость подключения? Нет, не сможете, потому как никто не помнит как подключать это таким образом, чтобы VBScript был способен получать это. Просим прощения. Джеффри Сновер, архитектор Windows PowerShell, именует это последней милей. При помощи VBScript (и иных подобных технологий) вы можете делать многое, но в некий момент времени он имеет тенденцию изменять вам, так и не помогая пройти эту последнюю милю до конца.
Windows PowerShell это явная попытка со стороны Microsoft выполнить свою работу лучше и помочь вам преодолеть вашу последнюю милю. И до сих пор это была наилучшая попытка. Десятки групп продуктов внутри Microsoft приспособили к PowerShell, от него зависит обширная экосистема сторонних производителей, а глобальное сообщество экспертов и энтузиастов ежедневно расширяет возможности PowerShell.
Цель Microsoft для Windows PowerShell состоит в построении 100% продукта функциональности администрирования на PowerShell. Microsoft продолжает собирать консоли графического интерфейса, однако эти консоли за сценой исполняют команды PowerShell. Если вам требуется автоматизировать повторяемую задачу или создать процесс, который не исполняется должным образом в графическом интерфейсе, вы можете спуститься в PowerShell и взять в свои руки полный контроль.
Некоторые продукты Microsoft в последние годы уже приспособлены к такому подходу, включая Exchange, SharePoint, продукты System Center, Microsoft 365, Azure, а также не стоит сбрасывать со счетов Windows Admin Center. Продукты не- Microsoft, включая Amazon Web Services (AWS) и VMware, также проявили острый интерес к PowerShell.
Windows Server 2012, в котором был введён в строй PowerShell v3 и выше почти полностью управляются из PowerShell - либо при помощи графического интерфейса пользователя, располагаемого поверх PowerShell. Вот почему вы не можете позволять себе игнорировать PowerShell: за последние годы PowerShell становится основой для всё большего и большего администрирования. Он уже стал основой для множества технологий более высокого уровня, включая Desired State Configuration (DSC) и многое иное. PowerShell повсеместно!
Задайте себе вопрос: если бы я руководил командой ИТ- администраторов (а возможно так оно и есть), кого бы я пожелал на своих старших, наиболее оплачиваемых должностях? Администраторов, которым требуется несколько минут, чтобы щёлкнуть в графическом интерфейсом всякий раз, когда требуется исполнять задачу, или те, кто способен выполнять задачу, либо те, кто может выполнять задачи за несколько секунд после их автоматизации? Мы уже знаем ответ из почти всех прочих частей мира ИТ. Спросите администратора Cisco, оператора AS/400 или администратора Unix. Ответ таков: "Я бы предпочёл человека, который способен более действенно управлять вещами из командной строки". По мере продвижения в будущее, мир Windows начнёт делиться на две группы: администраторы, которые могут применять PowerShell и те, кто не может этого. Наша любимая цитата Дона Гэннона- Джонса на конференции Microsoft TechEd 2010: "Ваш выбор это Изучать PowerShell, либо Вы хотите это вместе с картофелем фри?". Мы рады, что вы решили сделать решительный шаг и изучать вместе с нами PowerShell!
В середине 2016, Microsoft сделал беспрецедентное решение по PowerShell Версии 6 (также называемой как PowerShell Core) с открытым исходным кодом. В то же самое время они выпустили версии - без приставки Windows - для macOS и множества сборок Linux. Великолепно! Теперь одна и та же оболочка вокруг объектов доступна во множестве операционных систем и могут развиваться и улучшаться сообществом по всему миру. По этой причине для данной редакции книги мы сделали всё возможное чтобы продемонстрировать применение PowerShell во множестве платформ и включает также и примеры для macOS и Linux. Мы по- прежнему полагаем, что самой большой аудиторией PowerShell будут пользователи Windows, но мы также хотим убедиться что вы понимаете как это работает и в прочих операционных системах.
Мы сделали всё возможное чтобы всё в данной книге было переносимо между платформами. Однако на момент написания данной книги, для Linux и macOS доступно чуть более 200 команд, поэтому не всё, что мы бы хотели показать вам, будет работать. Имея это в виду, мы особенно хотим выделить главы 19 и 20, которые на 100% сосредоточены на Windows.
Эта книга не пытается быть всем для всех. Команда Microsoft PowerShell условно выделяет три аудитории,которые пользуются PowerShell:
-
Администраторы (вне зависимости от ОС), которые в первую очередь запускают команды и употребляют написанные кем- то ещё инструменты
-
Администраторы (вне зависимости от ОС), которые комбинируют команды и инструменты в более сложные процессы и, возможно, пакуют их в качестве инструментов, которые могут применять администраторы с меньшим опытом
-
Администраторы (вне зависимости от ОС) и разработчики, которые разрабатывают повторно применяемые инструменты и приложения
Данная книга в первую очередь разработана для самой первой аудитории. Мы полагаем, что она ценна для всех, даже для разработчиков, чтобы понять как PowerShell применяется для исполнения команд. Помимо всего, если вы намерены создавать свои собственные инструменты и команды, вы должны знать применяемые PowerShell шаблоны, поскольку они позволяют вам делать работающие инструменты и команды так же добротно, как и в PowerShell.
Если у вас есть интерес создавать сценарии для автоматизации сложных процессов, например, предоставление новых пользователей, тогда вы обнаружите как это выполнять в самом конце этой книги. Вы даже обнаружите как приступать к созданию своих собственных команд, которыми смогут пользоваться прочие администраторы. Однако данная книга не исследует глубины всего того, что способен выполнять PowerShell. Наша цель состоит в том, чтобы обучить вас применению PowerShell и действенно использовать его в промышленной среде.
Мы также покажем вам пару способов применения PowerShell для соединения с технологиями внешнего управления; удалённая работа и взаимодействие с классами Common Information Model (CIM, Общей информационной модели) и регулярные выражения это два быстро приходящих на ум примера. По большей части, мы намерены лишь представить эти технологии и сосредоточимся лишь на том, как PowerShell соединяется с ними. Данные темы заслуживают отдельных книг (и они имеются), а потому мы сосредоточимся исключительно на PowerShell. Мы предоставим предложения для дальнейшего изучения, если вы пожелаете применять данные технологии самостоятельно. Короче говоря, данная книга не предназначена для того, чтобы служить последним материалом, который вы применяете для изучения PowerShell, а скорее предназначена для того, чтобы стать отличным первым шагом.
Основная стоящая за этой книгой идея состоит в том, чтобы вы читали по одной главе каждый день. Вам не придётся читать её за обедом, однако каждая глава должна отнимать у вас на чтение только около 40 минут, оставляя вам дополнительные 20 минут на поглощение вашего сандвича и попрактиковаться с тем, что эта глава показала вам.
Из всех глав данной книги, главы со 2 по 26 содержат основной материал, предоставляя вам 25 дней ценности искомых с нетерпением вами обедов. Вы можете рассчитывать на освоение основного содержимого примерно за месяц. Старайтесь как можно дольше придерживаться этого расписания и не чувствуйте себя обязанным читать в какой- то из дней дополнительные главы. Более существенно чтобы вы потратили некое время на практику с тем, что показывает вам каждая из глав, потому как применение PowerShell поможет вам закрепит то что вы узнали. Не для всякой главы требуется целый час, поэтому вы сможете потратить дополнительное время на практику (и на обед), прежде чем вернуться к работе. Мы обнаружили, что большинство людей учится быстрее когда останавливаются на одной главе в день, потому как это предоставляет вашему мозгу время чтобы обдумать новые идеи, а вам время попрактиковаться самостоятельно. Не спешите, и вы сможете обнаружить, что движетесь быстрее чем ожидали. В главе 27 представлены идеи о том, что делать дальше в вашем путешествии с PowerShell. Наконец, мы включаем Дополнение A. Шпаргалка PowerShell, которое является компиляцией всех упоминавшихся нами в тексте книги "подводных камней"; пользуйтесь им в качестве ссылки,когда вы хотите найти что- то, но не можете вспомнить где искать.
Большинство основных глав содержат краткие лабораторные занятия для выполнения вами. Вам будут предоставлены инструкции, а также подсказка. или парочка. Все ответы на эти лабораторные занятия приводятся в конце каждой из глав. Однако сделайте всё возможное чтобы не заглядывать в эти ответы.
У нас имеется одно видео, сделанное с учётом данной книги: "How to navigate the help system in PowerShell" Тайлера; оно находится в центре бесплатных материалов Manning.
Мы также предлагаем управляемый Джеймсом PowerShell.org и его каналом YouTube, который содержит тонны видео содержимого. Вы найдёте записанные сессии с мероприятий PowerShell + DevOps Global Summit, Интернет вебинаров сообщества и многое иное. Всё это бесплатно!
Несколько глав из этой книги лишь поверхностно затрагивают некоторых технологий и мы завершаем их предложениями для самостоятельного изучения данных вопросов. Мы указываем на дополнительные ресурсы, включая бесплатные материалы, которые вы можете применять по мере необходимости для расширения своего набора навыков.
По мере изучения нами PowerShell мы часто хотели пойти по касательной и выяснить почему что- то работает именно так. Тем самым мы не получили большого числа дополнительных практических навыков, но получали более глубокое понимание того что представляет собой PowerShell и как он работает. Мы включили часть таких вторичных сведений в разделы с пометкой "Выше и дальше". Ни один из них не потребует от вас более пары минут или около того на чтение, но если вы относитесь к тому типу людей, которым нравится знать почему нечто работает именно так, а не иначе, они способны снабдить вас парой дополнительных занимательных фактов. Если вы ощущаете, что такие разделы способны отвлекать вас от практических вещей, игнорируйте их при первом прочтении. Вы всегда сможете вернуться и изучить их позднее, когда освоите основной материал данной книги.
Вы намерены выполнять множество практических занятий в PowerShell на протяжении данной книги и вы захотите иметь для работы с ними некую лабораторную среду. Будьте так любезны, на практикуйтесь в промышленной среде своей компании.
Всё что вам требуется для исполнения большинства примеров из этой книги - а также для выполнения всех лабораторных занятий - это копия Windows, которая обладает установленным PowerShell 7.1 или последующим. Мы полагаем также Windows 10 или последующий, либо Windows Server 2016 или старше, поскольку оба поставляются с PowerShell v5.1. Если вы намерены воспроизводить PowerShell, вам придётся вложиться в обладающую им версию Windows. Для большинства наших лабораторных занятий мы включаем дополнительные инструкции для вашей среды Linux.
Замечание | |
---|---|
Вам придётся выгрузить и установить PowerShell обособленно, поскольку он работает бок о бок с Windows PowerShell 5.1, который поступает предустановленным. Однако, большинство из этих лабораторных занятий будут исполняться в Windows PowerShell. Инструкции о том как установить PowerShell вы можете обнаружить в http://mng.bz/p2R2. |
Также мы будем пользоваться Visual Studio Code (VS Code) с самым последним стабильным выпуском расширения PowerShell,
которое можно установить из marketplace. Если вы пользуетесь сборкой PowerShell отличной от Windows, у вас будет меньше
возможностей для беспокойства. Просто получите верную сборку для своей версии macOS или Linux (или чего- то ещё) с http://github.com/PowerShell/PowerShell и всё готово.
Однако имейте в виду, что многие функции, которые мы будем применять в своих примерах, уникальны для Windows. Например, вы
не можете получить перечень служб в Linux, потому как в Linux нет служб (он обладает схожими с ними демонами), но мы
постараемся применять переносимые между платформами примеры (например, Get-Process
).
Совет | |
---|---|
Вы сможете выполнять всё, что описано в данной книге в одном компьютере с PowerShell, хотя некоторые моменты становятся более занимательными. когда у вас имеются в одном домене два или три компьютера, с которыми можно поупражняться. |
Если у вас нет установленного прямо сейчас PowerShell 7, не беда. Мы пройдёмся по тому как это сделать в своей следующей главе. Если вы желаете проверить самую последнюю доступную версию PowerShell или выгрузить её, пройдите в https://docs.microsoft.com/en-us/powershell. Это официальная домашняя страница PowerShell обладает ссылками на самые последние выпуски и то как их устанавливать.
Совет | |
---|---|
Вам следует проверить свою версию PowerShell: откройте свою консоль PowerShell, наберите
|
Прежде чем вы двинетесь куда бы то ни было далее, потратьте пару минут на персонализацию PowerShell. Если вы пользуетесь хостом с консолью на основе текста, мы настоятельно рекомендуем чтобы вы заменили шрифт консоли по умолчанию на шрифт с фиксированной шириной Lucida {Прим. пер.: либо воспользуйтесь советом из нашего перевод 4 издания Книга рецептов автоматизации Windows Server при помощи PowerShell Томаса Ли и установите бесплатный шрифт Cascadia Code.} Шрифт по умолчанию затрудняет отличать некую специальную применяемую PowerShell пунктуацию. Для персонализации этого шрифта выполните следующие шаги:
-
Кликните по блоку управления (это иконка PowerShell в левом верхнем углу окна его консоли) и выберите из его меню Properties (Свойства).
-
В появившемся блоки диалога пройдитесь по различным закладкам для изменения соответствующего шрифта, цветов окон, размера и положения окна и тому подобному.
Совет Убедитесь что и размер окна и буфер экрана обладают одними и теми же значениями ширины.
{Прим. пер.: Для PowerShell 7 вы можете столкнуться с ошибкой сохранения настроек для консоли по умолчанию. Если это так, измените полномочия на файл
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\PowerShell\PowerShell 7 (x64).lnk
.}
Ваши изменения будут применены к консоли по умолчанию, что означает, что они остаются теми же при открытии новых окон.
Естественно, всё это применимо только к Windows: в операционных системах, не относящихся к Windows, обычно вы устанавливаете
PowerShell, открываете командную строку своей операционной системы (то есть оболочку Bash) и запускаете
powershell
. Окно вашей консоли определяет ваши цвета, схему экрана и тому подобное,
поэтому определитесь с подгонкой своих предпочтений.
Мы стремимся помогать таким как вы людям изучать PowerShell, и мы стараемся предоставлять как можно больше ресурсов.
Мы также ценим ваши отзывы, потому как они помогают нам придумывать новые ресурсы, которые мы бы могли добавлять на
свою площадку, а также способы улучшения последующих изданий данной книги. В Твиттере вы можете встретиться с Трэвисом по
@TravisPlunk
, Тайлером по @TylerLeonhardt
и
Джеймсом по @PsJamesP
. Мы также общаемся на форумах
https://forums.powershell.org, когда у вас имеются вопросы
относительно PowerShell. Другим замечательным местом для большого числа ресурсов является
https://powershell.org, который содержит бесплатные электронные
книги, личные конференции, бесплатные вебинары и многое иное. Джеймс помогает управлять всей организацией и мы не можем не
рекомендовать её как место для продолжения обучению PowerShell после прочтения вами этой книги.
Немедленная действенность это фраза, которую мы сделали своей главной целью для этой книги. Насколько это возможно, каждая глава сосредоточена на чём- то, что вы бы смогли сразу же применять в реальной промышленной среде. Это означает, что порой мы упускаем некоторые подробности в начале, но при необходимости мы обещаем вернуться обратно и раскрыть эти детали в нужное время. Во многих случаях нам приходилось выбирать между тем, чтобы для начала поразить вас 20 страницами теории, либо сразу погрузиться в исполнение чего- нибудь, не поясняя все нюансы, предостережения и подробности. Когда появляется такой выбор, мы почти всегда выбирали сразу же погрузить вас с целью превратить вас в немедленно эффективных. Но все такие важные подробности и нюансы поясняются далее в этой книге.
Ладно, достаточно предыстории. Пришло время начать действовать немедленно. Вас ожидает первый обеденный урок.