Чему вы научитесь
- Писать advanced functions с типизированными параметрами, валидацией, конвейерным вводом и поддержкой -WhatIf
- Проектировать вывод как объекты и управлять шестью потоками PowerShell вместо печати текста
- Обрабатывать ошибки через ErrorRecord, ThrowTerminatingError, повторы и коды выхода для планировщика
- Собирать модуль с манифестом, приватными функциями, классами, форматами ps1xml и публикацией через PSResourceGet
- Работать с JSON, CSV, XML, REST API, файлами, конфигурацией в psd1 и секретами SecretManagement
- Выполнять проверки параллельно через ForEach-Object -Parallel, thread jobs и .NET Task без гонок
- Тестировать код в Pester 5 с моками и локальными заглушками, держать анализатор и покрытие в CI
- Вызывать нативные команды, .NET и платформенные API так, чтобы скрипт работал на Windows и Linux
- Запускать скрипты по расписанию с логами, кодами возврата и минимальными правами
- Готовить релиз модуля: версия, CHANGELOG, GitHub Actions, документация PlatyPS
О курсе
Скрипт на PowerShell легко написать и трудно сделать надёжным: он работает в консоли автора и ломается в планировщике, теряет ошибки внутри конвейера, печатает текст вместо объектов, зависит от профиля и текущего каталога. Большинство таких проблем связано не с логикой, а с механикой движка: областями видимости, потоками вывода, привязкой параметров, поведением ошибок, границами runspace. Этот курс разбирает именно эти механизмы PowerShell 7 и показывает, какие решения для них рекомендует актуальная документация платформы.
Что внутри
Двенадцать глав и 99 уроков. Первые две главы вводят в движок и язык: чем PowerShell 7 отличается от Windows PowerShell 5.1, как устроена система типов поверх .NET, строки, коллекции, $null и авто-развёртывание. Дальше — конвейер и шесть потоков вывода, advanced functions с валидацией, наборами параметров и ShouldProcess, обработка ошибок с ErrorRecord, ThrowTerminatingError и повторами, модули с манифестом, форматами ps1xml и сборкой в один файл, классы и enum, работа с JSON, CSV, XML, REST, файлами, конфигурацией в psd1 и секретами через SecretManagement.
Вторая половина курса — то, что отличает рабочий инструмент от учебного примера: параллелизм на runspace и ForEach-Object -Parallel, thread jobs и .NET Task; тестирование в Pester 5 с моками и локальными HTTP-заглушками, PSScriptAnalyzer с собственными правилами, покрытие и отчёты для CI; нативные команды, Start-Process, кроссплатформенный код для Windows и Linux, прямые вызовы .NET, структурированные логи, запуск по расписанию через Task Scheduler, cron и systemd; производительность, remoting по SSH, безопасность скриптов, GitHub Actions, публикация через PSResourceGet, документация PlatyPS и расширение модуля по контракту.
Сквозной проект Vigil
С первой главы вы строите Vigil — модуль проверок доступности: HTTP, TCP, DNS, TLS-сертификаты, свободное место на дисках, возраст файлов бэкапов, процессы и службы. Проверки описываются в конфигурации, выполняются последовательно или параллельно, результаты уходят в историю в формате JSON Lines, отчёты в Markdown и HTML, уведомления на webhook. К концу курса у проекта есть манифест, форматы вывода, классы VigilResult и VigilProbe, тесты Pester, настройки анализатора, сборочный скрипт, workflow GitHub Actions для Ubuntu и Windows, сгенерированная документация и точка входа для планировщика с кодами выхода. Полный исходный код проекта прилагается к курсу и совпадает с тем, что разбирается в уроках.
Как устроены уроки
Каждый урок — это исходный код с разбором, а не пересказ документации: инженерная ситуация из проекта, механизм движка, который её объясняет, готовое решение, типичные ошибки и задание для самостоятельной работы. Главы с третьей по десятую завершаются тестовыми задачами с одним правильным ответом; после неверного ответа показывается объяснение.
Чего в курсе нет
Курс не учит программированию с нуля и не задерживается на синтаксисе ради синтаксиса: предполагается, что циклы, функции и исключения вам знакомы по другому языку. Нет Windows PowerShell 5.1 как целевой платформы, нет Desired State Configuration, администрирования Active Directory и Exchange, графических интерфейсов. Всё, что описано, проверено на PowerShell 7.4 и 7.6 на Windows и Linux.
Для кого этот курс
Начальные требования
- Опыт разработки или автоматизации на любом языке: функции, коллекции, исключения, работа с файлами и сетью
- PowerShell 7.4 или новее на Windows, Linux или macOS; редактор с расширением PowerShell (VS Code)
- Git и доступ к GitHub для главы о CI; Docker или вторая ОС желательны для проверки кроссплатформенности, но не обязательны
- Понимание основ HTTP, DNS и TLS на уровне пользователя
Программа курса
В курс входят
- 99 уроков
- 56 тестов
Наши преподаватели
Что вы получаете
- Полный исходный код модуля Vigil с тестами, сборкой, CI и документацией, растущий от главы к главе
- 99 уроков с разбором исходного кода на PowerShell 7 и заданиями к каждому
- Тестовые задачи с объяснениями в главах с третьей по десятую
- Чек-лист качества скрипта на PowerShell 7 в финальном уроке
- Шаблоны конфигурации, задач планировщика, systemd timer и workflow GitHub Actions