*КУБ - повний комплекс хмарних послуг!

PowerShell для автоматизації: універсальний інструмент IT-фахівця

PowerShell for automation: a universal tool for IT professionals

PowerShell — це потужний інструмент автоматизації та управління для системних адміністраторів. Він дозволяє запускати сценарії (скрипти), контролювати служби, користувачів, події, а також взаємодіяти із зовнішніми системами та API. Цей посібник покаже, як крок за кроком використовувати PowerShell для реальних завдань.

Встановлення та підготовка

  1. Завантажте PowerShell 7+ з офіційного сайту: https://github.com/PowerShell/PowerShell
  2. Відкрийте PowerShell або PowerShell ISE (вбудований редактор скриптів).

Дозвольте виконання скриптів, виконавши:

				
					Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

				
			
PowerShell для автоматизації універсальний інструмент IT-фахівця

Перший скрипт Hello.ps1

Створіть файл Hello.ps1 і вставте:

				
					Write-Host "Hello, PowerShell automation!"
Get-Date
$env:USERNAME
				
			

Запустіть скрипт командою:

				
					.\Hello.ps1
				
			
PowerShell для автоматизації універсальний інструмент IT-фахівця

Основи синтаксису

PowerShell заснований на зрозумілій і лаконічній структурі:

  • Команди: Get-Process, Start-Service, Stop-Computer

  • Змінні: $user = «Admin»

  • Умови: if ($x -gt 10) { … }

  • Цикли: foreach ($item in $list) { … }

Використовуйте редактор PowerShell ISE або Visual Studio Code з розширенням PowerShell для підсвічування та автодоповнення.

PowerShell для автоматизації універсальний інструмент IT-фахівця

Стиль і структура скриптів

Рекомендується дотримуватися таких принципів:

  • Називайте функції в стилі Дієслово-Суть: Get-Report, Start-Backup
  • Використовуйте Try-Catch для обробки помилок
  • Додавайте коментарі та описи параметрів (докблоки)
  • Розділяйте логіку за функціями та модулями

Приклад: моніторинг пам’яті

				
					param([int]$Threshold = 80)

$mem = Get-CimInstance Win32_OperatingSystem |
    Select @{Name='FreeGB'; Expression={[math]::Round($_.FreePhysicalMemory/1MB,2)}}

if ($mem.FreeGB -lt $Threshold) {
    Write-Warning "Memory low: $($mem.FreeGB) GB"
} else {
    Write-Host "Memory OK: $($mem.FreeGB) GB"
}

				
			

Сценарій перевіряє, чи достатньо вільної пам’яті, і виводить попередження при її нестачі.

Планувальник завдань (Task Scheduler)

Ви можете запускати скрипти PowerShell за розкладом:

  • Відкрийте Планувальник завдань

  • Створіть нове завдання → Вкладка Дія

Вкажіть:

				
					powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\Hello.ps1"
				
			
  • Налаштуйте тригер за часом або подією

Управління користувачами

Локальні користувачі:

				
					$pass = Read-Host -AsSecureString "Введите пароль"
New-LocalUser -Name "TestUser" -Password $pass -FullName "Тестовый пользователь"
Disable-LocalUser -Name "TestUser"
Remove-LocalUser -Name "TestUser"
				
			

Active Directory (з CSV-файлом):

				
					Import-Csv users.csv | ForEach-Object {
    New-ADUser -Name $_.Name -SamAccountName $_.Login `
    -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -Force) -Enabled $true
}
				
			

Моніторинг подій Windows

				
					Get-WinEvent -LogName System -MaxEvents 10 |
Format-Table TimeCreated, Id, Message
				
			

Фільтрація:

				
					Get-WinEvent -FilterHashtable @{LogName='Application'; Id=1000; StartTime=(Get-Date).AddDays(-1)}
				
			

Експорт у CSV:

				
					... | Export-Csv "C:\Logs\app.csv" -NoTypeInformation
				
			

Резервне копіювання та архівування

				
					$src = "C:\Important"
$dst = "D:\Backup\Backup_$(Get-Date -Format 'yyyyMMdd').zip"
Compress-Archive -Path "$src\*" -DestinationPath $dst

Add-Content "D:\Backup\backup_log.txt" "Backup: $(Get-Date) → $dst"
				
			

Цей скрипт створює архів з папки і реєструє факт резервного копіювання.

Електронні повідомлення

				
					Send-MailMessage -From "admin@domain.com" -To "team@company.com" `
 -Subject "Backup report" -Body "Backup completed successfully." `
 -SmtpServer "smtp.domain.com" -Attachments "D:\Backup\*.zip"
				
			

Інтеграція з CI/CD та хмарою

  • Ви можете використовувати PowerShell у GitHub Actions, Azure Automation Runbooks або на VPS SSD

Приклад для GitHub Actions:

				
					- name: Run PowerShell script
  run: pwsh ./monitor.ps1
				
			
  • В Azure ви можете запустити скрипт за розкладом з RBAC і логами виконання.

PowerShell — це не просто оболонка, а універсальний інструмент автоматизації. Реальні приклади резервного копіювання, видалення старих файлів і запуску програм допомагають швидко зрозуміти основи. Важливо: завжди тестуйте скрипти з параметром -WhatIf або в тестовому середовищі, щоб уникнути небажаних змін.