Как работать с PowerShell: большой гид для новичков
Как работать с PowerShell: большой гид для новичков
С помощью PowerShell можно обрабатывать файлы, управлять процессами на компьютерах и автоматизировать многие задачи. Рассказываем, как работать с этим инструментом.
PowerShell — это кросс-платформенный инструмент от Microsoft. Он предназначен для автоматизации задач, администрирования систем и работы с разными сервисами Windows. PowerShell сочетает возможности командной строки, скриптовых языков и объектно ориентированного программирования.
PowerShell предназначен для управления операционной системой и её компонентами с помощью команд и скриптов. Его ключевая особенность — работа с объектами, а не просто с текстом. В отличие от стандартной командной строки, PowerShell использует объекты .NET, за счёт чего можно извлекать, фильтровать и изменять данные.
Разобраться в информационных системах и инструментах администрирования можно на курсе «Системный администратор». Студенты проходят практику на основе реальных проектов компаний. После окончания учёбы им помогают с поиском работы.
В PowerShell есть много возможностей для администраторов и разработчиков.
PowerShell можно найти в Windows через меню Пуск
Одной из главных целей PowerShell является автоматизация рутинных задач. Например, администратор может написать сценарий, который:
PowerShell — это инструмент автоматизации, он упрощает управление системами. Помогает сократить время на выполнение рядовых задач и минимизировать ошибки.
Примеры задач
Существует несколько способов установки PowerShell в Windows, все они описаны в официальной документации. Разберём два из них.
WinGet — это утилита командной строки для управления приложениями в Windows. Она позволяет искать, устанавливать, обновлять, удалять и настраивать программы. WinGet работает как клиентский интерфейс для Windows Package Manager. В Windows 11 и последних версиях Windows 10 этот инструмент предустановлен и доступен через Установщик приложений.
Для установки PowerShell можно использовать команды:
1. Найти последнюю версию PowerShell: winget search Microsoft.PowerShell
2. Name Source | Id | Version |
---|---|---|
PowerShell winget | Microsoft.PowerShell | 7.5.0.0 |
PowerShell Preview winget | Microsoft.PowerShell.Preview | 7.6.0.2 |
3. Установить PowerShell основной или предварительной версии с использованием параметра id:
winget install --id Microsoft.PowerShell --source winget
или
winget install --id Microsoft.PowerShell.Preview --source winget
Чтобы установить PowerShell в Windows, можно скачать пакет установки.
После скачивания нужно дважды нажать на файл установщика и затем следовать инструкциям на экране. Программа установки создаст ярлык в меню Windows «Пуск».
По умолчанию пакет устанавливается в каталог: $env:ProgramFiles\PowerShell\<version>.
А вот как установить PowerShell на MacOS:
1. Открыть терминал: Cmd + Space, ввести Terminal.
2. Установить Homebrew, если он не установлен.
3. Установить PowerShell: brew install --cask powershell
4. Запустить PowerShell: pwsh
После установки можно выполнить базовую настройку.
● Разрешить выполнение скриптов: Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
● Обновить модули: Install-Module PowerShellGet -Force -SkipPublisherCheck.
Update-Module
● Проверить установленные модули: Get-Module -ListAvailable
● Добавить PowerShell в переменные окружения для удобного запуска из командной строки:
○ для Windows нужно добавить C:\Program Files\PowerShell\7\ в PATH.
○ для macOS — добавить export PATH="$PATH:/usr/bin/pwsh" в ~/.bashrc или ~/.zshrc
PowerShell использует командлеты (cmdlets) — специальные команды, которые предназначены для выполнения разных задач. Командлеты имеют стандартный формат «глагол — существительное», поэтому можно быстро в них разобраться.
Примеры использования команд и их описание
В PowerShell можно запускать команды в фоновом режиме, чтобы они не блокировали терминал. Вот несколько примеров:
PowerShell ISE (Integrated Scripting Environment) — это встроенная в Windows среда для написания, тестирования и отладки скриптов PowerShell. У неё простой интерфейс, в котором можно выполнять команды в интерактивном режиме и писать многострочные сценарии.
Чтобы открыть PowerShell ISE, можно использовать один из способов:
Интерфейс PowerShell ISE состоит из нескольких основных элементов:
Чтобы создать и выполнить скрипт, нужно в редакторе написать код, например: Write-Host "Привет, PowerShell!". Затем нажать F5, чтобы запустить весь скрипт.
У PowerShell ISE простой интерфейс: в основном окне можно вводить команды
В PowerShell ISE можно выполнять пошаговую отладку скриптов. Чтобы установить точку останова, нужно:
1. В редакторе найти строку, с которой необходимо начать отладку.
2. Нажать F9, чтобы установить точку останова. Она выделится красным цветом.
3. Запустить скрипт через F5, выполнение остановится на точке останова.
PowerShell ISE поддерживает автодополнение команд и параметров. Чтобы воспользоваться этой функцией, нужно:
1. Ввести начало команды и нажать Ctrl + Space, чтобы увидеть доступные варианты.
2. Использовать Tab, чтобы автоматически дописать команду.
Можно запускать отдельные строки кода без выполнения всего скрипта:
1. Выделить нужную часть кода.
2. Нажать F8, чтобы выполнить выделенный фрагмент.
PowerShell — это объектно ориентированная оболочка командной строки. В отличие от классической командной строки, которая работает с текстом, PowerShell оперирует объектами. Разберёмся на примерах, как с ними работать.
PowerShell позволяет читать данные из текстовых файлов, CSV, JSON и других форматов. Вот несколько команд:
● Чтение текстового файла:
$content = Get-Content -Path "C:\example.txt"
$content
Команда Get-Content читает содержимое файла и возвращает его в виде массива строк.
● Чтение CSV-файла:
$data = Import-Csv -Path "C:\example.csv"
$data
Команда Import-Csv преобразует CSV-файл в объекты, с которыми можно работать.
● Чтение JSON-файла:
$jsonData = Get-Content -Path "C:\example.json" | ConvertFrom-Json
$jsonData
Команда ConvertFrom-Json преобразует JSON-строку в объект PowerShell.
Также можно записывать данные в файл. Вот команды на примере тех же форматов:
● Запись в текстовый файл:
"Hello, World!" | Out-File -FilePath "C:\output.txt"
Команда Out-File записывает данные в файл.
● Запись в CSV-файл:
$data = @(
[PSCustomObject]@{ Name = "Alice"; Age = 25 }
[PSCustomObject]@{ Name = "Bob"; Age = 30 }
)
$data | Export-Csv -Path "C:\output.csv" -NoTypeInformation
Команда Export-Csv сохраняет объекты в CSV-файл.
● Запись в JSON-файл:
$data = @{ Name = "Alice"; Age = 25 }
$data | ConvertTo-Json | Out-File -FilePath "C:\output.json"
Команда ConvertTo-Json преобразует объект в JSON-строку.
В PowerShell можно фильтровать данные с помощью команды Where-Object. Вот, например, скрипт, который создаёт список чисел от 1 до 10 и выводит только четные числа:
$numbers = 1..10
$evenNumbers = $numbers | Where-Object { $_ % 2 -eq 0 }
$evenNumbers
Для изменения данных можно использовать команду ForEach-Object или простую конструкцию с циклом foreach. Например, скрипт, который преобразует все строки в массиве в верхний регистр:
$names = @("John", "Jane", "Doe")
$upperNames = $names | ForEach-Object { $_.ToUpper() }
$upperNames
Для сортировки данных используется команда Sort-Object. Вот, к примеру, скрипт, который сортирует список чисел в порядке возрастания:
$numbers = 5, 3, 9, 2, 8
$sortedNumbers = $numbers | Sort-Object
$sortedNumbers
Для группировки данных по определенному критерию можно использовать команду Group-Object. Вот скрипт, который группирует людей по возрасту:
$people = @(
@{Name="John"; Age=25},
@{Name="Jane"; Age=30},
@{Name="Doe"; Age=25}
)
$groupedByAge = $people | Group-Object -Property Age
$groupedByAge
Ошибки при работе с PowerShell могут возникать по разным причинам: например, из-за неправильных команд и синтаксиса, из-за неверного типа данных. Рассмотрим несколько примеров ошибок и варианты их устранения.
Совет эксперта
Читать также: