PowerShell — это одновременно язык сценариев и командная оболочка, которая позволяет управлять системой и автоматизировать практически любую задачу. В книге «PowerShell для сисадминов» обладатель Microsoft MVP Адам Бертрам aka «the Automator» покажет, как использовать PowerShell так, чтобы у читателя наконец-то появилось время на игрушки, йогу и котиков.
Вы научитесь:
- Комбинировать команды, управлять потоком выполнения, обрабатывать ошибки, писать сценарии, запускать их удаленно и тестировать их с помощью фреймворка тестирования Pester.
- Анализировать структурированные данные, такие как XML и JSON, работать с популярными сервисами (например Active Directory, Azure и Amazon Web Services), создавать системы мониторинга серверов.
- Создавать и проектировать модули PowerShell.
- Использовать PowerShell для удобной, полностью автоматизированной установки Windows.
- Создавать лес Active Directory, имея лишь узел Hyper-V и несколько ISO-файлов.
- Создавать бесчисленные веб- и SQL-серверы с помощью всего нескольких строк кода!
Реальные примеры помогают преодолеть разрыв между теорией и работой в настоящей системе, а легкий авторский юмор упрощает чтение.
Author(s): Адам Бертрам
Series: Для профессионалов
Publisher: Питер
Year: 2021
Language: Russian
Pages: 416
City: СПб.
Tags: ps
Краткое содержание
Оглавление
Об авторе
О научном редакторе
Благодарности
Введение
Почему именно PowerShell?
Для кого эта книга
О книге
От издательства
Часть I. Основы
Глава 1. Начало работы
Открытие консоли PowerShell
Использование команд DOS
Изучаем команды PowerShell
Подсказки
Отображение документов
Изучение общих аспектов
Обновление документов
Итоги
Глава 2. Основные понятия PowerShell
Переменные
Отображение и изменение переменной
Пользовательские переменные
Встроенные переменные
Переменная $null
Переменная LASTEXITCODE
Переменные предпочтений
Типы данных
Логические значения
Целые числа и числа с плавающей точкой
Целочисленные типы
Типы с плавающей точкой
Строки
Объединение строк и переменных
Использование двойных и одинарных кавычек
Объекты
Проверка атрибутов
Использование командлета Get-Member
Вызов методов
Структуры данных
Массивы
Определение массивов
Чтение элементов массива
Изменение элементов в массиве
Добавление элементов в массив
Объекты ArrayList
Добавление элементов в ArrayList
Удаление элементов из ArrayList
Хеш-таблицы
Чтение элементов из хеш-таблиц
Добавление и изменение элементов хеш-таблицы
Удаление элементов из хеш-таблицы
Создание пользовательских объектов
Итоги
Глава 3. Объединение команд
Запуск службы Windows
Использование конвейера
Передача объектов между командами
Передача массивов между командами
Поговорим о привязке параметров
Написание сценариев
Настройка политики выполнения
Создание сценариев в PowerShell
Использование PowerShell ISE
Написание первого сценария
Итоги
Глава 4. Поток управления
Немного о потоке управления
Использование условных операторов
Построение выражений с помощью операторов
Оператор if
Оператор else
Оператор elseif
Оператор switch
Использование циклов
Цикл foreach
Оператор foreach
Командлет ForEach-Object
Метод foreach()
Цикл for
Цикл while
Циклы do/while и do/until
Итоги
Глава 5. Обработка ошибок
Работа с исключениями и ошибками
Обработка незавершающих ошибок
Обработка завершающих ошибок
Изучение автоматической переменной $Error
Итоги
Глава 6. Пишем функции
Функции и командлеты
Определение функции
Добавление параметров в функции
Создание простого параметра
Атрибут параметра Mandatory
Значения параметров по умолчанию
Добавление атрибутов проверки параметров
Прием входных данных конвейера
Добавление еще одного параметра
Организация совместимости функции с конвейером
Добавление блока process
Итоги
Глава 7. Изучаем модули
Изучение встроенных модулей
Поиск модулей в сеансе
Поиск модулей на вашем компьютере
Импорт модулей
Компоненты PowerShell-модуля
Файл .psm1
Манифест модуля
Работа с пользовательскими модулями
Поиск модулей
Установка модулей
Деинсталляция модулей
Создание собственного модуля
Итоги
Глава 8. Удаленный запуск сценариев
Работа с блоками сценариев
Использование команды Invoke-Command для выполнения кода на удаленных системах
Запуск локальных сценариев на удаленных компьютерах
Удаленное использование локальных переменных
Передача переменных с помощью параметра ArgumentList
Использование оператора $Using для передачи значений переменных
Работа с сеансами
Создание нового сеанса
Вызов команд в сеансе
Открытие интерактивных сеансов
Отключение от сеансов и повторное подключение к ним
Удаление сеансов с помощью команды Remove-PSSession
Общие сведения об авторизации при удаленном управлении PowerShell
Проблема двойного перехода
Двойной прыжок с использованием CredSSP
Итоги
Глава 9. Тестирование с помощью Pester
Знакомьтесь: Pester
Основы Pester
Файл Pester
Блок describe
Блок context
Блок it
Утверждения
Выполнение теста Pester
Итоги
Часть II. Автоматизация повседневных задач
Глава 10. Парсинг структурированных данных
CSV-файлы
Чтение CSV-файлов
Использование команды Import-Csv для обработки данных
Превращение сырых данных в объекты
Определяем собственный заголовок
Создание CSV-файлов
Проект 1. Создание отчета об инвентаризации компьютеров
Таблицы Excel
Создание таблиц Excel
Чтение таблиц Excel
Добавление данных в таблицы Excel
Проект 2. Создание инструмента мониторинга служб Windows
Данные в формате JSON
Чтение данных в формате JSON
Создание строк JSON
Проект 3. Запрос и парсинг REST API
Итоги
Глава 11. Автоматизация Active Directory
Исходные требования
Установка модуля ActiveDirectory в PowerShell
Запросы и фильтрация объектов AD
Фильтрация объектов
Возврат отдельных объектов
Проект 4. Поиск учетных записей пользователей, пароль которых не менялся в течение 30 дней
Создание и изменение объектов AD
Пользователи и компьютеры
Группы
Проект 5. Создание сценария приема сотрудников
Синхронизация с другими источниками данных
Проект 6. Создание сценария синхронизации
Сопоставление атрибутов источника данных
Создание функций для возврата схожих свойств
Поиск совпадений в Active Directory
Изменение атрибутов Active Directory
Итоги
Глава 12. Работа с Azure
Исходные требования
Авторизация в Azure
Создание субъекта-службы
Неинтерактивная авторизация с помощью команды Connect-AzAccount
Создание виртуальной машины Azure и всех зависимостей
Создание группы ресурсов
Создание сетевого стека
Подсеть
Виртуальная сеть
Общедоступный IP-адрес
Виртуальный сетевой адаптер (vNIC)
Создание учетной записи хранения
Создание образа операционной системы
Закругляемся
Автоматизация создания ВМ
Развертывание веб-приложения на Azure
Создание плана службы приложений и веб-приложения
Развертывание базы данных SQL Azure
Создание Azure SQL Server
Создание базы данных SQL Azure
Создание правила брандмауэра SQL Server
Тестирование вашей базы данных SQL
Итоги
Глава 13. Работа с Amazon Web Services
Исходные требования
Авторизация в AWS
Авторизация с пользователя root
Создание пользователя и роли IAM
Авторизация вашего пользователя IAM
Создание экземпляра AWS EC2
Виртуальное частное облако
Интернет-шлюз
Маршруты
Подсеть
Назначение образа AMI экземпляру EC2
Закругляемся
Развертывание приложения Elastic Beanstalk
Создание приложения
Развертывание пакета
Создание базы данных SQL Server в AWS
Итоги
Глава 14. Создание сценария инвентаризации сервера
Исходные требования
Создание сценария проекта
Определение окончательного результата
Обнаружение и ввод сценария
Запрос всех серверов
Думаем наперед: объединение различных типов информации
Запрос файлов на удаленном расположении
Запрос инструментария управления Windows
Свободное место на диске
Информация об операционной системе
Память
Информация о сети
Службы Windows
Очистка и оптимизация скрипта
Итоги
Часть III. Создаем свой модуль
Глава 15. Создание виртуальной среды
Исходные требования для модуля PowerLab
Создание модуля
Создание пустого модуля
Создание манифеста модуля
Использование встроенных префиксов для имен функций
Импорт нового модуля
Автоматизация подготовки виртуальной среды
Виртуальные коммутаторы
Создание виртуального коммутатора вручную
Автоматизация создания коммутатора виртуальных машин
Создание виртуальных машин
Создание виртуальной машины вручную
Автоматизация создания ВМ
Виртуальные жесткие диски
Создание VHD вручную
Автоматизация создания VHD
Выполнение функции New-PowerLabVhd
Тестирование новых функций с помощью Pester
Итоги
Глава 16. Установка операционной системы
Исходные требования
Развертывание ОС
Создание VHDX
Подключение виртуальной машины
Автоматизация развертывания ОС
Хранение зашифрованных учетных данных на диске
PowerShell Direct
Тестирование с помощью Pester
Итоги
Глава 17. Развертывание Active Directory
Исходные требования
Создание леса Active Directory
Создаем лес
Сохранение защищенных строк на диск
Автоматизация создания леса
Заполнение домена
Работа с таблицей объектов
Разработка плана
Создание AD-объектов
Сборка и запуск тестов Pester
Итоги
Глава 18. Создание и настройка SQL-сервера
Исходные требования
Создание виртуальной машины
Установка операционной системы
Добавление файла автоматического ответа Windows
Добавление SQL-сервера в домен
Установка SQL-сервера
Копирование файлов на SQL-сервер
Запуск установщика SQL-сервера
Автоматизация SQL-сервера
Запуск тестов Pester
Итоги
Глава 19. Рефакторинг кода
Еще раз о функции New-PowerLabSqlServer
Использование наборов параметров
Итоги
Глава 20. Создание и настройка веб-сервера IIS
Исходные требования
Установка и настройка
Создание веб-сервера с нуля
Модуль веб-администрирования
Сайты и пулы приложений
Сайты
Пулы приложений
Настройка SSL на веб-сайте
Итоги