, Книга рецептов автоматизации Windows Server при помощи PowerShell, 4е

Книга рецептов автоматизации Windows Server при помощи PowerShell, 4е издание

Томас Ли

Вступление Джефри Сноувир, привилегированного технического сотрудника Microsoft

 

Первая публикация на английском языке: Март 2013

Вторая публикация на английском языке: Сентябрь 2017

Третья публикация на английском языке: Февраль 2019

Четвёртое издание на английском языке: Июль 2021

Ссылка на продукт: 1290721

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

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

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

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-80056-845-7

www.packtpub.com

2021-08-23

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

Автор
Томас Ли
Продюсер
Кэйтлин Мидоуз
Редактор приобретения - партнёрские обзоры
Дивья Мудальяр
Редактор проекта
Парвати Наир
Редактор разработки содержимого
Люси Ван
Литературный редактор
Safis Editing
Технический редактор
Адитья Савант
Корректор
Safis Editing
Составитель указателя
Рекха Наир
Дизайнер представления
Ганеш Бхадвалкар

Вступление

Я был очень взволнован, когда Томас Ли сообщил мне что он написал новую книгу.

Я ещё больше был взбудоражен, когда он сказал мне что она про Windows Server 2022.

Я совсем возбудился, когда он рассказал мне, что в ней применяется PowerShell 7.

Томас Ли был фиксером сообщества PowerShell начиная с того самого момента, когда он сорвал мою первую презентацию о нём, дико выпалив: "Вот мои деньги! Я покупаю это сейчас!" Он следил и участвовал во всех этапах пути PowerShell и был действенным и чётким адвокатом сообщества пользователей. Томас действенно заявляет о потребностях сообщества команд Windows Server и PowerShell. Томас также эффективно сообщает сообществу о новых достижениях Windows Server и PowerShell. Он даёт им понять что является возможным и как этого добиваться.

В рамках своей публичной защиты в сообществе Томас откровенно рассказывал о проблемах, с которыми сталкиваются администраторы Windows при наличии PowerShell Core. PowerShell Core отличался от Windows PowerShell. Он перешёл с .NET Framework на .NET Core. Основным преимуществом .NET Core было то, что он являлся кроссплатформенным - он работал в Linux и обладал открытым исходным кодом. Основная же проблема .NET Core состояла в том, что он не обладал всеми функциональными возможностями .NET Framework. Таким образом, PowerShell Core не обладал всеми свойствами Windows PowerShell. Поскольку он не обладал всею функциональностью, некоторые команды партнёров не поддерживали его.

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

В конце концов, никому не важно как вы готовите колбасу, всем важен лишь её вкус. К какой- то момент кто- нибудь расскажет про Геркулесов подвиг того, что было связано с переходом на .NET Core. Это было эпически и потребовало пересмотра наших инженерных и испытательных систем. Но этот капитальный ремонт подарил нам маневренность. И с такой гибкостью повысилась ориентация на клиента и повышенная оперативность. А поскольку PowerShell обладал открытым исходным кодом, сообщество смогло приспособить этот продукт к своим потребностям и работать ещё быстрее. Я помню видео Джефа Вулси, демонстрировавшего некую новую возможность и Томаса Ли, написавшего в Твиттере: "Это потрясающе. Это некая разновидность PowerShell V1 снова и снова. СУПЕР взволнован". Я ответил: "Да, но с гораздо большей скоростью".

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

Чтобы быть до конца откровенным, Windows PowerShell делает кое-что, чего не делает PowerShell V7. Из-за низкого уровня применения и отзывов сообщества мы отказались от набора функциональных возможностей подобных Workflow. Я был уверен, что это не помешает управлению Windows Server, но я всегда знал, что Томас Ли сможет проверить это на практике.

Принимая во внимание тот факт, что Томас использует PowerShell V7 в качестве основы для данной книги по управлению Windows Server, я могу спать спокойно.

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

PowerShell это всё для того чтобы сделать вам успех.

Удачи в написании сценариев!

Джеффри Сноувир

привилегированный технический сотрудник Microsoft

 Об авторе

Томас Ли является консультантом/ тренером/ писателем из Англии и он работает в ИТ- бизнесе с конца 60-х годов. По окончанию Университета Карнеги- Меллона Томас присоединился к ComShare, где работал системным программистом, создавая операционную систему с разделением времени Commander II, предшественницу парадигмы облачных вычислений наших дней. В середине 1970-х он перешёл в ICL, чтобы работать над операционной системой VME/K. После творческого отпуска в 1980/1 он присоединился к тому, что сегодня известно как Accenture, оставив это в 1988, чтобы управлять своим собственным бизнесом консалтинга и обучения, который действует до сих пор.

Томас обладает многочисленными сертификатами Microsoft, включая MCSE (одним из самых первых в мире) и последующими версиями, MCT (25 лет) и был номинирован 1 раз на премию MVP Microsoft. Сегодня он живёт в коттедже в деревенской Англии со своей семьёй, прекрасным винным погребом и огромной коллекцией записей Grateful Dead и группы Jerry Garcia.

Прежде всего, я бы хотел поблагодарить Джеффри Сноувира из Microsoft за изобретение PowerShell. Мне посчастливилось оказаться в его комнате в тот самый первый раз, когда он представил то, что тогда называлось Монадой. Его энтузиазм был заразителен и почту уже как 20 лет спустя, я всё ещё взволнован. И конечно же, ни одна книга по PowerShell не будет без признания той огромной работы, которая была проделана командой PowerShell, включая Джоуи Айелло, Стива Ли, Джима Труэра и многих других. Команда постоянно прислушивалась к его сообществу, находила способы улучшать PowerShell и предоставляла выпуск за выпуском солидный, хорошо написанный код.

Когда вы пишите книгу, за вами стоит большая издательская команда, без которой такая книга оставалась бы просто мечтой. Это ещё более актуально, поскольку эта книга была написана во время пандемии Covid19. Справиться с результатами этого стало настоящим испытанием для всех нас. Огромное спасибо всей команде Packt: Кэйтлин Мидоуз (действительно выдающемуся редактору) и всем людям, которых она привела на нашу вечеринку. Также спасибо Парвати Наир и Люси Ван, двум преданным редакторам, которые превратили мою плохо написанную тарабарщину в приличный технический английский, а также Адитье Саванту, когрый помог с корректурой.

Моя благодарность нашему превосходному техническому обозревателю Джошуа Кингу. Его отзывы всегда были предупредительными и полезными. Он обнаруживал изначально упущенные мной проблемы и его многочисленные предложения помоги мне сделать книгу лучше. Я с нетерпением жду возможности снова поработать с ним (и всей этой командой).

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

И наконец, я должен поблагодарить свою замечательную супругу Сьюзен и нашу замечательную дочь Ребекку. Моя жена была терпеливой по мере хода дел, она мирилась с моим плохим настроением, когда продвижение было не столь гладким, как хотелось бы, а также удерживала меня в здравом уме, когда вокруг меня творилось безумие. А улыбка моей дочери не могла помочь, но освещала даже самые мрачные дни.

 Рецензент

Джошуа Кинг специалист MVP Microsoft и инженер по эксплуатации инфраструктуры в Chocolatey Software. Он имеет долгий опыт работы в средах Windows и VMware и увлечён всем, что связано с PowerShell и автоматизацией.

Джошуа был автором The PowerShell Conference Book Volume 2 и The PowerShell Conference Book Volume 3.

Вы можете найти Джошуа в Твиттер, @WindosNZ, а его блоги на https://toastit.dev/.

 www.PacktPub.com

 Предисловие

PowerShell впервые представил миру на Конференции профессиональных разработчиков в Лос Анджелесе в 2003 Джеффри Сноувир. С кодовым названием Монада он представлял полную революцию в управлении. Примерно в то же время написанный официальный документ, Monad Manifesto, остаётся впечатляющим анализом того времени этой задачи правления большим числом систем Windows. Ключевой вывод состоит в том, что в отличие от PowerShell, графический интерфейс не масштабируется.

PowerShell преобразовал управление сложной, основанной на сетевом ресурсе, инфраструктуре Windows и, всё чаще, отличной от Windows инфраструктурой. Знание PowerShell и того, как получать максимальную выгоду от PowerShell, теперь является обязательным для любого профессионала ИТ. Остаётся верной популярная поговорка: изучите PowerShell или осваивайте гольф.

Windows PowerShell был разработан в Windows для администраторов Windows. PowerShell 7, его последователь с открытым исходным кодом, доступен также для Mac и наиболее популярных дистрибутивов Linux. Данная книга, тем не менее, сосредоточена на PowerShell внутри среды Windows.

Эта книга познакомит вас с использованием PowerShell в различных ситуациях, применяя многие функции из богатого набора, включённых в Windows Server 2022 и 2019. Данное предисловие снабжает вас введением в то, что содержится в этой книге и как получить от неё максимальную пользу.

 Для кого эта книга

Эта книга предназначена для профессионалов ИТ, включая системных администраторов, системных инженеров, архитекторов и консультантов, которым требуется разбираться в PowerShell для упрощения и автоматизации их повседневных задач. Все рецепты из данной книги были проверены в самых последних версиях Windows Server.

 Что охватывает эта книга

Глава 1. Установка и конфигурирование PowerShell 7, показывает вам как устанавливать и настраивать как PowerShell? так и VS Code, который заменяет Windows PowerShell ISE (Integrated Scripting Environment), а также как установить новый шрифт, Cascadia Code. Эта глава также рассматривает среду PowerShell 7, включая модуль PSReadLine.

Глава 2. Введение в PowerShell 7, рассматривает что нового в PowerShell 7. Эта глава рассматривает те новые функциональные возможности, которые применяются в PowerShell 7, включая целый ряд новых операторов и улучшений в параллельной обработке. Данная глава также рассматривает как PowerShell форматирует сообщениями об ошибках и управляет ими.

Глава 3. Изучаем совместимость с Windows PowerShell, изучает совместимость PowerShell 7 с Windows PowerShell. PowerShell основывается на .NET с открытым исходным кодом, который по большей части, но не полностью, совместим с более ранним .NET Framework. Это означает, что некоторые функциональные возможности Windows PowerShell не будут естественным образом работать внутри PowerShell, включая большое число модулей Windows PowerShell, поставляемых совместно с Windows Server. Данная глава исследует приспособление механизма совместимости разработчиков PowerShell с тем, чтобы более ранние модули Windows PowerShell продолжали работать с PowerShell и сокращали имеющийся промежуток между тем, что вы были способны выполнять в Windows PowerShell и тем, что вы способны делать при помощи PowerShell 7.

Глава 4. Применение PowerShell 7 в вашей корпорации, рассматривает как вы можете применять различные функциональные возможности PowerShell 7, которые могут быть более распространёнными внутри корпораций более крупного размера. Они включают в себя RSAT (Remote Server Administration Tools, инструменты удалённого администрирования), управление пакетами и PowerShell Gallery, а также репозиторий локальных модулей. Данная глава также рассматривает подписи сценариев PowerShell, использование закладок и работу с файлами архивов (.zip).

Глава 5. Изучаем .NET, исследует NET, который составляет основу для PowerShell. Данная глава рассматривает сборки, классы и методы NET и завершается демонстрацией того, как вы можете создавать простые расширения и PowerShell полные cmdlet на основе C#.

Глава 6. Управляем Active Directory, изучает как устанавливать, управлять и пользоваться Active Directory (AD), включая установку доменов и дочерних доменов, управление объектами AD, и применение Групповых политик. Эта глава также изучает как вы можете пользоваться PowerShell для получения отчётов вашей среды AD.

Глава 7. Управление сетевыми средами в вашей корпорации, показывает вам как при помощи PowerShell управлять сетевыми средами Windows. В наши дни сетевые среды занимают центральное место практически в каждой организации и данная глава рассматривает разнообразные относящиеся к сетям задачи, включая поиск новых способов выполнения старых задач при помощи PowerShell, например, настройка DNS, и отказоустойчивости с балансировкой нагрузки DHCP.

Глава 8. Реализация корпоративной безопасности, рассматривает вопросы безопасности в контексте корпоративной среды. Эта глава рассматривает Just Enough Administration(JEA, в точности достаточного администрирования), которая ограничивает те действия, которые некий администратор способен выполнять удалённо. Она также рассматривает журналы событий, ведение журналов блоков сценариев PowerShell 7, настройку относящихся к PowerShell 7 групповых политик и конфигурирование тонко гранулированной политики паролей AD. Эта глава завершается просмотром продукта Антивирусного Defender Windows, встроенного в Windows Server.

Глава 9. Управление хранилищем, говорит об управлении хранилищем в Windows Server, включая локально подключаемые устройства и Windows Storage Spaces. Данная глава также рассматривает Реплику хранения, функциональную возможность Windows Server 2022.

Глава 10. Управление совместными данными, изучает различные способы совместного применения данных и управления вашими разделяемыми данными при помощи Windows Server и PowerShell. Всё это включает в себя управление полномочиями NTFS, создание совместных ресурсов SMB и их безопасность, а также настройку и применение iSCSI. Данная глава завершается рассмотрением File Server Resource Manager (FSRM), функциональной возможности Windows Server, а также управления квотами, контроля файлов и составления отчётов FSRM.

Глава 11. Управление печатью, показывает как управлять принтерами, очередями печати и драйверами принтеров, а также как настраивать пул принтеров. Вы также изучите как выводить на печать тестовую страницу.

Глава 12. Управление Hyper-V, демонстрирует применение Hyper-V. Эта глава покажет вам как собирать и развёртывать ВМ при помощи Hyper-V. Это также включает в себя встраиваемый Hyper-V и исполнение ВМ Hyper-V внутри другой ВМ Hyper-V, что полезно для целого ряд ситуаций.

Глава 13. Управление Azure, рассматривает управление ресурсами IaaS и PaaS в Azure с применением PowerShell. Для проверки рецептов этой главы вам потребуется доступ к Azure. Данная глава описывает Хранилище Azure и как настраивать некую Виртуальную машину, веб сайт Azure и совместное использование файла SMB3.

Глава 14. Устранение неисправностей при помощи PowerShell, рассматривает целый ряд аспектов как реакции по устранению неисправностей, так и их упреждению. Это включает в себя применение отладчика сценария PowerShell, получения событий из соответствующего журнала событий, а также применение содержащегося в Windows Server Анализатора рекомендаций (Best Practices Analyzer).

Глава 15. Управление с помощью Windows Management Instrumentation, изучает Windows Management Instrumentation (WMI, Инструментарий управления Windows) и позволяет исследовать пространства имён, классы и экземпляры классов WMI. Вы осуществляете выборку сведений из классов WMI, обновляете WMI при помощи методов WMI, а также управляете событиями WMI, включая постоянный контроль событий WMI.

 Как получить от этой книги больше пользы

Я спроектировал и написал эту книгу основываясь на некоторых предположениях и с некоторыми ограничениями. Прочтите, пожалуйста, этот раздел чтобы понять как я трактовал применение вами этой книги и что я предполагал о вас. Это поможет вам извлечь из этой книги максимальную пользу.

Самое первое предположение, которое я сделал при написании данной книги, состоит в том, что вы знакомы с самыми основами PowerShell. По этой причине данная книга не является учебником по PowerShell. Все рецепты из этой книги пользуются широким диапазоном функциональных возможностей PowerShell, включая WMI, удалённую работу, AD и тому подобное, но вам требуется знать самые основы PowerShell. Эта книга разрабатывалась с применением Windows 10, а также как Windows Server 2019, так и берущего разбег Windows Server 2022.

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

Вы начинаете своё исследование с установки и настройки PowerShell и VS Code, а также с создания ВМ Hyper-V для проверки рецептов каждой из глав. Я собрал и протестировал свои рецепты из этой книги пошагово (то есть не запускал весь рецепт как отдельный файл сценария). Если вы выполните некий рецепт единым шагом, кое- какой вывод может отличаться от того что вы наблюдаете здесь по причине того как PowerShell форматирует объекты.

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

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

Многие из применяемых в этой книге cmdlet, команд и методов объектов производят вывод, который может оказаться не столь предупредительным и полезным, в особенности в промышленной среде. Часть cmdlet вырабатывают вывод, который заполнил бы большое число страниц данной книги при этом добавляя не такую уж большую ценность. По этой причине многие рецепты отправляют вывод cmdlet конвейером в Out-Null. Не стесняйтесь удалять это там, где вы бы хотели получать более подробные сведения. Во многих случаях я также выравнивал получаемый вывод во избежание потери пространства.

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

Для написания этой книги я пользовался большой фермой, состоящей из 12 хостов Windows Server 2022 и клиентов Windows 10. Мой основной хост разработки был хорошо настроенной системой Windows 10 (96ГБ ОЗУ, 2x 6 ядерных процессоров Xeon и быстрых SSD). Все те хосты, которые применялись в этой книге являлись сочетанием некоторого физического оборудования (запускавшегося почти полностью в Windows 10 и большом наборе ВМ), как это описывается в конкретном рецепте.

[Замечание]Замечание

В помощь написанию этой книги я создал некий набор сценариев для построения ВМ Hyper-V, которые я и применял для разработки данной книги. Эти сценарии опубликованы в https://github.com/doctordns/ReskitBuildScripts. Я также опубликовал некоторые подробности относительно сетевой среды ВМ, созданных при помощи данных сценариев, причём с полным указанием имён хостов и IP адресов с тем же самым URL. Полный набор ВМ к концу написания этих строк занимал около 600ГБ дискового пространства. К счастью, храение стало дешевле! В репозитории GitHub имеются дополнительные подробности о сценариях и о том как запускать их. Если у вас возникли какие- то проблемы с этими сценариями, пожалуйста, заведите файл с проблемой в GitHub и я смогу вам помочь.

PowerShell 7 обеспечивает широкий охват функциональных возможностей, позволяющий управлять всеми функциями и свойствами Windows Server 2022 при помощи PowerShell. Как и в случае с Windows PowerShell, у вас имеется значительная гибкость в отношении того какие команды вы применяете в своих сценариях. Хотя командлеты PowerShell и являются в основном вашим первейшим средством, в некоторых ситуациях вам требуется глубже погружаться в .NET или в WMI для получения доступа к объектам, свойствам и методам, которые не представляет ни одна из имеющихся команд PowerShell. А если этого не достаточно, вы можете разработать свои собственные классы .NET командлеты PowerShell 7 целиком.

Важной стороной всех рецептов в этой книге является применение сторонних модулей, получаемых из Галереи PowerShell. Существует богатое и яркое сообщество PowerShell, которое создало для вас значительный объём функциональных возможностей. Такая Галерея PowerShell, предоставляемый Microsoft репозиторий, позволяет загружать и применять эти модули. Например, модуль NTFSSecurity упрощает управление Access Control List (ACL) для NTFS файлов и папок.

Весь предоставленный в этой книге код был проверен. Когда я его проверял, он работал и он выполнял то, о чём я говорю (по крайней мере, на этапе написания книги). Я допустил некоторые вольности в отношении макета и форматирования чтобы удовлетворить процесс производства и печати этой книги, но вы должны получать те же самые результаты. Тем не менее, процесс производства книги очень сложен и на этапах производства могут закрасться ошибки. Так что если вы обнаружите в любом из рецептов некий шаг, который отказывает у вас, поместите файл с такой проблемой в моём репозитории GitHub для этой книги (указан ниже). По общим вопросам, пожалуйста, публикуйте их в форуме PowerShell Spiceworks.

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

При написании данной книги я собирался создавать содержимое вокруг ряда функциональных возможностей Windows Server 2022. Для публикации этой книги необходимо было не углубляться в каждую функциональность Windows. Мне пришлось решать какие свойства (и команды) показывать, а какие нет, поскольку каждая из глав запросто была способна перерасти в небольшую книгу. Перефразируя Джеффри Сноувира, отправить значит сделать выбор. Надеюсь, я делал правильный выбор.

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

Наконец, существует тонкая линия между PowerShell и функциональной возможностью Windows. Чтобы применять PowerShell для управления неким свойством Windows, вам требуется разбираться в самой такой функциональной возможности Windows. Все главы предоставляют краткие обзоры функциональных возможностей Windows Server и я снабжаю их ссылками в помощь вам дополнительными сведениями. Как и всегда, Bing и Google ваши наилучшие друзья.

 Выгрузка файлов образца кода

Я опубликовал все рецепты (и даже чуть сверх этого) в общедоступном репозитории GitHub: https://github.com/PacktPublishing/Windows-Server-Automation-with-PowerShell-7.1-Cookbook-Fourth-Edition. В вершине этого репозитория имеется файл README.md, вводящий в курс дела относительно того что имеется в данном репо. Внутри папки scripts вы можете найти все рецепты из этой книги.

В случае обнаружения каких бы то ни было ошибок внутри всех рецептов из этого репозитория, будьте добры выставить файл с проблемой в https://github.com/PacktPublishing/Windows-Server-Automation-with-PowerShell-7.1-Cookbook-Fourth-Edition/issues и я смогу помочь вам.

Данная книга пользуется фермой ВМ Hyper-V, которую вы можете применять для репликации этих рецептов. Я создал некий набор сценариев построения ВМ, которые вы можете выгрузить из моего репозитория GitHub. Для применения этих сценариев вам требуется получить некий образ ISO Windows Server 2022, чтобы он служил базовым образом. Вы можете получить его с https://www.microsoft.com/evalcenter/evaluate-windows-server-2022-preview/, либо через ваш Video Studio или иную подписку. Вы можете можете воспользоваться этим образом чтобы создать "эталонного диск" - далее для каждой ВМ, предоставленные сценарии создадут уникальную ВМ на основе такого эталонного диска. Такая ВМ это совершенно новая установка на основе не требующего обслуживания XML, применяемого для предварительной настройки каждой ВМ. В теории вы можете создать эти ВМ в Azure, но я не проверял это. Вы можете прочесть дополнительно о том как применять такие сценарии построения из документа README.md в репозитории.

 Загрузка цветных изображений этой книги

Мы дополнительно снабжаем вас файлом PDF, который содержит цветные изображения экранных снимков/ схем, использованных в данной книге. Вы можете загрузить этот файл по адресу: https://static.packt-cdn.com/downloads/9781800568457_ColorImages.pdf.

 Соглашения

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

CodeInText обозначает кодовые слова в тексте, названия таблиц баз данных, имена папок, названия файлов, расширения файлов, пути, макеты URL, ввод пользователя и обработчики Twitter. Вот некие примеры: "Для установления ссылочной закладки, вы можете воспользоваться объектом COM Wscript.Shell.".

Блок кода записываются следующим образом:


"On Host [$(hostname)]"
"Total features available      [{0}]"  -f $Features.count
"Total features installed      [{0}]"  -f $FeaturesI.count
"Total RSAT features available [{0}]"  -f $RSATF.count
"Total RSAT features installed [{0}]"  -f $RSATFI.count
 	   

Всякий ввод и вывод в командной строке записывается следующим образом:


mkdir terraform && cd terraform
 	   

Жирный шрифт указывает некий новый термин, важное слово или слова, которые вы наблюдаете на экране. Вот некий образец: "Подписывание текста выполняется просто когда у вас имеется цифровой сертификат, выпущенный Certifcate Authority (CA)".

[Замечание]Замечание

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

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Разделы

В этой книге вы будете находить отдельные часто повторяющиеся заголовки (Приготовление, Как это сделать..., Как это работает..., Также ознакомьтесь... и Дополнительно). Чтобы получить чёткие инструкции как выполнить определённый рецепт, применяйте эти разделы следующим образом:

 Обратная связь с читателями

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

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.

 Поддержка пользователей

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

 Опечатки

Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

 Незаконное тиражирование

Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.

 Содержание

Предисловие
Что охватывает эта книга
Что вам нужно для этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Выгрузка файлов образца кода
Опечатки
Незаконное тиражирование
Вопросы
Глава 1. Установка и конфигурирование PowerShell 7
Введение
Установка PowerShell 7
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение консоли PowerShell 7
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение артефактов установки PowerShell 7
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Построение файлов профиля PowerShell 7
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Установка VS Code
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Установка шрифта Cascadia Code
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение PSReadLine
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 2. Введение в PowerShell 7
Введение
Изучение новых операторов
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение параллельной обработки при помощи ForEach-Object
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация в ForEach и ForEach-Object
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Улучшения в Test-Connection
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение Select-String
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение представления ошибки и Get-Error
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение экспериментальных функциональных возможностей
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 3. Изучаем совместимость с Windows PowerShell
Введение
Модульная совместимость
Несовместимые модули
Изучение совместимости с Windows PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение совместимых с Windows PowerShell решений
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение ограничений совместимых решений
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение списка запрета модулей
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Импорт формата XML
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Пользуемся совместимостью
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 4. Применение PowerShell 7 в вашей корпорации
Введение
Устанавливаем инструменты RSAT в Windows Server
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучаем управление пакетами
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучаем PowerShellGet и PS Gallery
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создаём локальный репозиторий PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Устанавливаем среду подписанных сценариев
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Работаем с закладками и модулем PSShortcut
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Работаем с файлами архивов
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 5. Изучаем .NET
Введение
Изучаем сборки .NET
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Исследуем классы .NET
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Пользуемся методами .NET
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создаём расширение C#
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создаём cmdlet PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 6. Управляем Active Directory
Введение
Применяемые в этой главе системы
Установка корневого домена леса AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Проверка установки AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Установка реплики контроллера домена
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Установка дочернего домена
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание пользователей и групп AD и управление ими
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление компьютерами AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Добавление в AD пользователей при помощи файлов CSV
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание объектов Групповых политик
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Отчётность по репликациям AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Отчётность по компьютерам AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Отчётность по пользователям AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 7. Управление сетевыми средами в вашей корпорации
Введение
Настройка адресации IP
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Проверка сетевой связности
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Установка DHCP
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Настройка областей действия и параметров DHCP
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение DHCP
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация отказоустойчивости DHCP и балансировки нагрузки
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Развёртывание DNS в вашей корпорации
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Настройка переадресации DNS
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление зонами и записями ресурсов DNS
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 8. Реализация корпоративной безопасности
Введение
Реализация Just Enough Administration (JEA)
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Исследование регистраций приложений и служб
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Обнаружение событий регистрации в системе в журнале событий
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Развёртывание Групповых политик PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение ведения журнала блока сценария PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Настройка политик паролей AD
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление антивирусом Windows Defender
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 9. Управление хранилищем
Введение
Управление физическими дисками и томами
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление файловыми системами
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение поставщиков и поставщиков FileSystem
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление Репликой хранения
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Развёртывание Storage Spaces
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 10. Управление совместными данными
Введение
Управление полномочиями файла и папки NTFS
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Настройка и работа с безопасностью файлового сервера SMB
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание совместных ресурсов SMB и их безопасность
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Доступ к совместным ресурсам SMB
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание цели iSCSI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение цели iSCSI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация квот FSRM
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация отчётности FSRM
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация отслеживания файлов FSRM
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 11. Управление печатью
Введение
Установка и совместное применение принтеров
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Публикация принтеров
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изменение каталога спулера
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изменение драйверов принтера
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Печать тестовой страницы
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление безопасностью принтера
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание пула принтера
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 12. Управление Hyper-V
Введение
Установка Hyper-V внутри Windows Server
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Смотри также
Создание ВМ Hyper-V
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение PowerShell Direct
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение групп ВМ Hyper-V
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Настройка оборудования Hyper-V
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Настройка сетевой среды Hyper-V
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация встроенной виртуализации
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление состоянием ВМ
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление ВМ и перемещением хранилища
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление репликацией ВМ
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление контрольными точками ВМ
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 13. Управление Azure
Введение
Приступаем к применению Azure при помощи PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание ресурсов Azure
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение учётной записи хранения Azure
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание совместного файла SMB Azure
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание вебсайта Azure
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Создание Виртуальной Машины Azure
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 14. Устранение неисправностей при помощи PowerShell
Введение
Применение Script Analyzer PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение рекомендаций Analyzer
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Устранение сетевых неисправностей
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Проверка сетевой связности при помощи Get-NetView
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Изучение отладки сценария PowerShell
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Глава 15. Управление с помощью Windows Management Instrumentation
Введение
Архитектура WMI
Исследование WMI в Windows
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Исследование пространств имён WMI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Исследование классов WMI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Получение локальных и удалённых объектов WMI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Применение методов WMI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Управление событиями WMI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Реализация постоянной обработки событий WMI
Подготовка
Как это сделать...
Как это работает...
Есть кое- что ещё...
Указатель