Примеры команд в PowerShell

Приветствую! Здесь вы наверняка найдете, что ищете. Примеры в лаборатории рассчитаны на то, что мы разбираем что-то конкретное.

Текущая статья посвящена powerShell: объектный pipeline, файлы, службы, REST, ошибки и сценарии администрирования Windows..

Поэтому за теорией по текущей теме вам — в энциклопедию. Если ещё не погружались, то маршрут прост:

  1. Основы
  2. Система и сеть
  3. Данные и разметка
  4. Код и разработка
  5. Языки
  6. Искусственный интеллект
  7. Проект
  8. Инфраструктура и безопасность
  9. Спин-офф

Обязательно пройдитесь.

А теперь приступим к нашему предмету.

Теория и соседние материалы

С чего начать
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.