Примеры команд в PowerShell
Приветствую! Здесь вы наверняка найдете, что ищете. Примеры в лаборатории рассчитаны на то, что мы разбираем что-то конкретное.
Текущая статья посвящена powerShell: объектный pipeline, файлы, службы, REST, ошибки и сценарии администрирования Windows..
Поэтому за теорией по текущей теме вам — в энциклопедию. Если ещё не погружались, то маршрут прост:
- Основы
- Система и сеть
- Данные и разметка
- Код и разработка
- Языки
- Искусственный интеллект
- Проект
- Инфраструктура и безопасность
- Спин-офф
Обязательно пройдитесь.
А теперь приступим к нашему предмету.
Теория и соседние материалы
С чего начать
Get-Help Get-ChildItem -Full — встроенная справка.Get-Member — список свойств объекта в pipeline.
Базовые команды
Get-Location
Set-Location C:\Logs
Get-ChildItem -Path C:\Logs -Filter *.log -Recurse
Get-Content .\app.log -Tail 50
Процессы и службы
Get-Process | Sort-Object CPU -Descending | Select-Object -First 10 Name, CPU, Id
Get-Service | Where-Object Status -eq 'Running'
Stop-Process -Name notepad -Force -ErrorAction SilentlyContinue
Restart-Service -Name Spooler
Поиск в файлах
Select-String -Path C:\Logs\*.log -Pattern 'ERROR|FATAL' |
Select-Object Path, LineNumber, Line
REST API
$uri = 'https://api.github.com/repos/microsoft/PowerShell'
$resp = Invoke-RestMethod -Uri $uri -Method Get
$resp.full_name
$resp.stargazers_count
Сценарий: проверка и запуск службы
$ErrorActionPreference = 'Stop'
$serviceName = 'Spooler'
$svc = Get-Service -Name $serviceName
if ($svc.Status -ne 'Running') {
Start-Service -Name $serviceName
Write-Host "Started $serviceName"
} else {
Write-Host "$serviceName already running"
}
Обработка ошибок
try {
Invoke-RestMethod -Uri 'https://invalid.example' -TimeoutSec 5
} catch {
Write-Error "Request failed: $($_.Exception.Message)"
exit 1
}
Параллельная обработка (PowerShell 7+)
1.10 | ForEach-Object -Parallel {
Start-Sleep -Seconds 1
"Worker $using:PID done $_"
} -ThrottleLimit 4
Типичные ошибки
| Ошибка | Решение |
|---|---|
Парсинг текста из dir |
Get-ChildItem + объекты |
| Игнорирование ошибок | -ErrorAction Stop в скриптах |
Старый синтаксис curl |
Invoke-RestMethod / Invoke-WebRequest |
Чек-лист
- Указана версия PowerShell (5.1 vs 7).
- Скрипт подписан или политика выполнения учтена.
- Секреты через
SecureString/ SecretManagement / переменные CI.