Современный PowerShell Год издания: 2022 Автор: Попов А. В. Издательство: БХВ-Петербург ISBN: 978-5-9775-6874-6 Серия: Системный администратор Язык: Русский Формат: PDF Качество: Отсканированные страницы + слой распознанного текста Интерактивное оглавление: Да Количество страниц: 370 Описание: Рассматривается объектно-ориентированная оболочка командной строки Microsoft PowerShell и ее возможности для автоматизации повседневных задач пользователей и администраторов. Описываются основные элементы и конструкции языка PowerShell, инструменты для написания и отладки сценариев. Приведена информация о работе с файловой системой и структурированными данными (CSV, JSON). Рассмотрены приемы управления процессами, службами и серверами автоматизации. Обсуждаются вопросы взаимодействия с веб-ресурсами при помощи HTTP-запросов. Даны примеры построения GUI для сценариев PowerShell с помощью Windows Forms и Windows Presentation Foundation. Представлены кросс-платформенные возможности PowerShell в macOS и Linux. Для начинающих системных администраторов и опытных пользователей
Примеры страниц (скриншоты)
Оглавление
Введение...........................................................................................................................10 Для кого предназначена эта книга.......................................................................................11 Структура книги................................................................................................................. 11 Принятые в книге соглашения..............................................................................................13 ЧАСТЬ I. ЗНАКОМИМСЯ С POWERSHELL................................................................................ 15 Глава 1. Командная строка и автоматизация работы............................................................. 16 Зачем нужна командная строка и скрипты.............................................................................17 Особенности языков сценариев для операционной системы................................................... 17 Инструменты автоматизации в UNIX-подобных системах........................................................ 19 Особенности автоматизации в Windows................................................................................ 21 Командный интерпретатор cmd.exe..................................................................................... 22 Сервер сценариев Windows Script Host................................................................................ 24 Оболочка и среда выполнения сценариев PowerShell.............................................................28 Итоги.................................................................................................................................31 Глава 2. Терминал, консоль и командная оболочка............................................................... 32 Терминалы в Windows......................................................................................................... 34 Стандартная консоль Windows............................................................................................. 35 Windows Terminal................................................................................................................ 36 Установка и запуск....................................................................................................... 37 Работа с вкладками....................................................................................................... 38 Разделение окна на несколько панелей....................................................................... 39 Использование палитры команд.................................................................................. 40 Запуск терминала с аргументами командной строки.......................................................40 Итоги............................................................................................................................................... 41 Глава 3. Первые шаги в PowerShell. Основные понятия.................................................................. 42 Запуск оболочки PowerShell......................................................................................................... 42 Работают ли знакомые команды.................................................................................................. 43 Вычисление выражений................................................................................................................ 45 Типы команд PowerShell............................................................................................................... 46 Командлеты............................................................................................................................ 47 Имена и структура командлетов.................................................................................. 47 Общие параметры командлетов..................................................................................50 Поиск командлетов.......................................................................................................51 Функции..................................................................................................................................52 Сценарии.................................................................................................................................53 Внешние исполняемые файлы..............................................................................................53 Псевдонимы команд......................................................................................................................53 Диски PowerShell...........................................................................................................................57 Провайдеры PowerShell.........................................................................................................58 Навигация по дискам PowerShell..........................................................................................59 Просмотр содержимого дисков и каталогов.......................................................................60 Создание дисков.....................................................................................................................62 Итоги...............................................................................................................................................63 Глава 4. Работа в оболочке PowerShell.....................................................................................65 Редактирование в командной строке PowerShell........................................................................65 Автоматическое завершение команд...........................................................................................68 Ввод команды в несколько строках.............................................................................................70 Справочная система PowerShell...................................................................................................70 Получение справки о командлетах...............................................................................................71 Справочная информация, не связанная с командлетами................................................................76 История команд в сеансе работы.................................................................................................78 Протоколирование действий в сеансе работы.............................................................................80 Настройка оформления командной строки PowerShell..............................................................82 Заголовок командного окна..................................................................................................83 Приглашение командной строки..........................................................................................85 Настройка пользовательских профилей......................................................................................86 Политики выполнения сценариев.................................................................................................88 Итоги........................................................................................................................................ 90 Глава 5. Работа с объектами......................................................................................................91 Конвейеризация объектов в PowerShell.......................................................................................91 Просмотр структуры объектов (командлет Get-Member).......................................................... 93 Фильтрация объектов (командлет Where-Object)........................................................................95 Использование блока кода....................................................................................................95 Использование оператора сравнения...................................................................................97 Сортировка объектов (командлет Sort-Object)............................................................................98 Выделение объектов и свойств (командлет Select-Object).......................................................100 Выполнение произвольных действий над объектами в конвейере (командлет For Each-Object)....................................................................................................... 103 Группировка объектов (командлет Group-Object).................................................................... 104 Измерение характеристик объектов (командлет Measure-Object)...........................................105 Обращение к статическим методам и полям............................................................................. 106 Итоги..............................................................................................................................................108 Глава 6. Управление выводом команд......................................................................................109 Форматирование выводимой информации................................................................................ 110 Перенаправление выводимой информации............................................................................... 112 Сохранение данных в файл.......... .......................................................................................113 Печать данных...................................................................................................................... 114 Подавление вывода...............................................................................................................115 Табличный вывод данных в графическое окно..................................................................115 Вывод в формате HTML..............................................................................................................117 Дополнительные потоки в PowerShell........................................................................................120 Перенаправление в файл...................................................................................................... 121 Перенаправление в выходной поток Output.......................................................................122 Итоги.............................................................................................................................................. 123 ЧАСТЬ IL POWERSHELL КАК ЯЗЫК ПРОГРАММИРОВАНИЯ.................................................... 125 Глава 7. Переменные, массивы и хэш-таблицы................................................................. 126 Числовые и символьные литералы..............................................................................................126 Числовые литералы..............................................................................................................126 Символьные строки..............................................................................................................127 Строки в одинарных и двойных кавычках.................................................................127 Строки типа here-string................................................................................................129 Переменные PowerShell...............................................................................................................130 Переменные оболочки PowerShell.......................................................................................131 Пользовательские переменные............................................................................................133 Типы переменных........................................................................................................133 Приведение типов........................................................................................................ 135 Дополнительные атрибуты переменных....................................................................136 Константы..................................................................................................................... 136 Переменные среды Windows...............................................................................................137 Массивы в PowerShell.................................................................................................................. 138 Обращение к элементам массива........................................................................................139 Операции с массивом...........................................................................................................140 Увеличение длины массива. Объединение массивов......................................................141 Удаление элементов....................................................................................................142 Действие оператора присваивания.............................................................................142 Сохранение в массиве вывода командлетов..............................................................143 Удаление массива........................................................................................................143 Хэш-таблицы (ассоциативные массивы)....................................................................................144 Операции с хэш-таблицей....................................................................................................145 Итоги..............................................................................................................................................147 Глава 8. Операторы и управляющие инструкции.................................................................... 149 Арифметические операторы........................................................................................................149 Оператор сложения...............................................................................................................150 Оператор умножения............................................................................................................152 Операторы вычитания, деления и остатка от деления...................................................... 153 Операторы присваивания.............................................................................................................154 Операторы сравнения...................................................................................................................155 Сравнения с использованием массивов..............................................................................156 Операторы проверки на соответствие шаблону................................................................ 157 Шаблоны с подстановочными символами................................................................ 157 Шаблоны с регулярными выражениями................................................................... 158 Логические операторы.........................................................................................................159 Управляющие инструкции языка PowerShell............................................................................ 160 Инструкция If... Elseif... Else.............................................................................................. 160 Цикл While............................................................................................................................ 161 Цикл Do ... While.................................................................................................................. 162 Цикл For............................................................................................................................... 162 Цикл For each........................................................................................................................ 163 Инструкция For each вне конвейера команд............................................................. 163 Инструкция For each внутри конвейера команд.......................................................164 Вопросы производительности................................................................................... 165 Метки циклов, инструкции Break и Continue.................................................................... 165 Инструкция Switch............................................................................................................... 166 Виды проверок внутри Switch.................................................................................... 166 Проверка массива значений....................................................................................... 169 Итоги............................................................................................................................................. 171 Глава 9. Функции, фильтры, сценарии и модули............................................................172 Функции в PowerShell.................................................................................................................. 172 Обработка аргументов с помощью переменной $args..................................................... 173 Формальные параметры функций...................................................................................... 175 Позиционные и именованные параметры................................................................. 175 Ограничение параметров по типу............................................................................. 177 Значения по умолчанию для параметров.................................................................. 178 Дополнительные атрибуты и валидация параметров.............................................. 179 Параметры-переключатели........................................................................................ 181 Описание параметров в операторе Param().............................................................. 182 Передача параметров с помощью сплаттинга переменных.............................................183 Возвращаемые значения..................................................................................................... 184 Функции внутри конвейера команд.................................................................................... 186 Функции в качестве командлетов. Расширенные функции.............................................. 187 Три фазы работы функции в конвейере.................................................................... 187 Доступ к общим параметрам и дополнительным потокам. Расширенные функции............................................................................................... 189 Сценарии PowerShell................................................................................................................... 191 Создание сценария............................................................................................................... 191 Запуск сценария из PowerShell........................................................................................... 192 Запуск сценария из внешней программы........................................................................... 193 Передача аргументов в сценарии....................................................................................... 194 Выход из сценариев. Код возврата..................................................................................... 195 Области видимости функций...................................................................................................... 195 Глобальная область видимости.......................................................................................... 196 Оператор Dot-Source............................................................................................................ 196 Области видимости переменных................................................................................................ 197 Модули PowerShell...................................................................................................................... 199 Модули-сценарии................................................................................................................. 199 Репозиторий сценариев PowerShell Gallery.............................................................................201 Итоги............................................................................................................................................. 204 Глава 10. Обработка ошибок при выполнении команд............................................................206 Объект Err or Record и поток ошибок.........................................................................................207 Сохранение объектов, соответствующих ошибкам..................................................................210 Мониторинг возникновения ошибок......................................................................................... 213 Режимы обработок ошибок........................................................................................................ 214 Обработка критических ошибок (исключений)........................................................................ 215 Инструкция Trap.................................................................................................................. 216 Инструкция Try/С at ch/Finally............................................................................................. 218 Итоги....................................................................................................................................... 218 ЧАСТЬ III. АВТОМАТИЗИРУЕМ РУТИНУ......................................................................................... 221 Глава 11. Работа с файловой системой и оболочкой Windows........................................................222 Навигация в файловой системе.................................................................................................. 222 Получение списка файлов и каталогов...................................................................................... 222 Определение размера каталогов................................................................................................. 226 Создание файлов и каталогов..................................................................................................... 226 Создание нескольких файлов.............................................................................................. 227 Пересоздание файла............................................................................................................ 228 Создание файла в несуществующем каталоге................................................................... 228 Чтение содержимого файлов...................................................................................................... 229 Запись файлов.............................................................................................................................. 230 Копирование файлов и каталогов............................................................................................... 231 Копирование каталога с файлами....................................................................................... 232 Копирование вложенных каталогов................................................................................... 232 Копирование файлов по маске............................................................................................ 233 Конкатенация файлов.......................................................................................................... 234 Переименование и перемещение файлов и каталогов.............................................................. 235 Переименование группы файлов........................................................................................ 235 Перемещение файлов.......................................................................................................... 235 Удаление файлов и каталогов..................................................................................................... 236 Поиск текста в файлах................................................................................................................. 237 Замена текста в файлах............................................................................................................... 239 Работа с файлами-ярлыками....................................................................................................... 240 Доступ к COM-объектам из PowerShell............................................................................. 240 Объект WScript.Shell............................................................................................................ 241 Создание ярлыка на рабочем столе.................................................................................... 242 Удаление некорректных ярлыков....................................................................................... 243 Итоги............................................................................................................................................. 244 Глава 12. Обработка структурированных данных..................................................................245 Работа с данными в формате CSV.............................................................................................. 245 Чтение из CSV-файла.......................................................................................................... 245 Запись в CSV-файл.............................................................................................................. 248 Обработка данных без обращения к файлу....................................................................... 249 Обработка данных в JSON-формате.......................................................................................... 250 Итоги............................................................................................................................................. 252 Глава 13. Управление процессами, службами и серверами автоматизации............................ 253 Управление процессами.............................................................................................................. 253 Просмотр списка процессов............................................................................................... 254 Определение библиотек, используемых процессом.........................................................257 Остановка процессов...........................................................................................................258 Запуск процессов.................................................................................................................259 Изменение приоритетов выполнения процесса................................................................ 261 Завершение неотвечающих процессов...............................................................................261 Управление службами.................................................................................................................261 Просмотр списка служб......................................................................................................262 Остановка и приостановка служб.......................................................................................263 Запуск и перезапуск служб..................................................................................................264 Изменение параметров службы..........................................................................................265 Работа с серверами автоматизации............................................................................................266 Объектные модели Microsoft Word и Excel.......................................................................266 Взаимодействие с Microsoft Word......................................................................................268 Взаимодействие с Microsoft Excel......................................................................................268 Итоги.............................................................................................................................................269 Глава 14. HTTP-запросы к веб-ресурсам...............................................................270 Командлет Invoke-WebRequest....................................................................................................270 Анализ HTML-страниц........................................................................................................270 Содержимое ответа от сервера и НТТР-заголовки................................................. 272 Сохранение веб-ресурсов...........................................................................................274 Поиск HTML-элементов на странице.......................................................................275 Выполнение POST-запросов...............................................................................................277 Командлет Invoke-RestMethod.....................................................................................................279 Итоги............................................................................................................................................. 281 ЧАСТЬ IV. ПИШЕМ СЦЕНАРИИ..........................................................................283 Глава 15. Разработка сценариев PowerShell..........................................................284 Переход от команд к сценариям.................................................................................................284 Среды для разработки сценариев...............................................................................................285 PowerShell ISE......................................................................................................................285 Запуск сценариев и фрагментов................................................................................285 Справочная система....................................................................................................287 Редактирование текста...............................................................................................289 Отладка сценариев......................................................................................................292 Visual Studio Code................................................................................................................294 Другие редакторы и среды разработки..............................................................................299 Рекомендации по разработке сценариев....................................................................................300 Общая структура сценария..................................................................................................300 Имена и псевдонимы команд и параметров......................................................................301 Расширенные и базовые функции......................................................................................303 Комментарии........................................................................................................................303 Справка, основанная на комментариях..............................................................................304 Расположение и форматирование кода..............................................................................306 Регистр символов в именах........................................................................................306 Скобки в коде..............................................................................................................307 Отступы, пробелы и пустые строки..........................................................................307 Точка с запятой как разделитель строк и значений.................................................309 Обратный апостроф для многострочных команд....................................................309 Производительность сценариев и продуктивность разработчика...........................................310 Пример. Статистика по объектам файловой системы (cmd и PowerShell)......................311 Итоги............................................................................................................................................. 312 Глава 16. Отладка функций и сценариев............................................................... 313 Вывод диагностических сообщений.......................................................................................... 313 Командлет Set-PSDebug.............................................................................................................. 315 Трассировка выполнения команд....................................................................................... 316 Пошаговое выполнение команд......................................................................................... 318 Вложенная командная строка............................................................................................. 319 Управление точками останова (командлеты *-PSBreakPoint).................................................321 Создание точки останова для сценария............................................................................. 322 Создание точки останова для команды.............................................................................. 326 Создание точки останова для переменной......................................................................... 326 Просмотр точек останова.................................................................................................... 327 Удаление точек останова.................................................................................................... 329 Итоги............................................................................................................................................. 330 Глава 17. Графический интерфейс для сценариев............................................... 331 Построение GUI с помощью Windows Forms........................................................................... 331 Построение GUI с помощью Windows Presentation Foundation...............................................335 Итоги............................................................................................................................................. 341 Что дальше? PowerShell для профессионалов....................................................... 342 ПРИЛОЖЕНИЯ.......................................................................................................... 343 Приложение 1. Что значат эти символы.................................................................344 Приложение 2. PowerShell в macOS и Linux.......................................................... 348 Установка и запуск оболочки..................................................................................................... 348 Отличия от Windows PowerShell................................................................................................ 350 Приложение 3. Дополнительная настройка командной строки..................................352 Модуль PSReadLine..................................................................................................................... 352 Интеграция с Git. Модуль posh-git............................................................................................. 355 Оформление приглашения командной строки.......................................................................... 358 Установка шрифтов Powerline............................................................................................ 358 Модуль Oh Му Posh............................................................................................................. 359 Оформление списков файлов и каталогов. Модуль Terminal-Icons........................................362 Предметный указатель.............................................................................................. 364
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum