PowerShell: Корисні скрипти, які знадобляться кожному

09/03/2026
| DevOps | iron_will | 0 | 9 | |
Network CICD Windows PowerShell ActiveDirectory

PowerShell уже давно перестав бути просто оболонкою для адміністрування Windows. Сьогодні це повноцінна платформа для автоматизації рутинних задач, управління інфраструктурою та інтеграції з різними сервісами. Незалежно від того, чи ви системний адміністратор, DevOps-інженер, або просто активно працюєте з Windows-системами, знання корисних скриптів PowerShell значно спрощує роботу та підвищує ефективність.

У цій статті ми розглянемо набір практичних скриптів, які допоможуть у повсякденних завданнях — від роботи з файлами та процесами до моніторингу системи та управління користувачами Active Directory. Кожен приклад супроводжується поясненням і кейсом застосування, щоб ви могли відразу інтегрувати їх у свій робочий процес.

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

Основи роботи з PowerShell

Перед тим як переходити до практичних скриптів, важливо розуміти базові принципи PowerShell:

  1. Об’єктна модель - PowerShell працює з об’єктами .NET, а не просто з текстом, що дозволяє легко фільтрувати, сортувати та трансформувати дані.

  2. Команди Cmdlet - стандартні команди PowerShell, які виконують конкретні завдання, наприклад Get-Process або Get-Service.

  3. Пайплайн (Pipeline) - механізм передачі об’єктів між командами через |, що дозволяє будувати складні сценарії обробки даних.

  4. Скрипти та модулі - для повторного використання логіки можна створювати скрипти .ps1 або пакувати функції у модулі .psm1.

Робота з файлами та папками

PowerShell надає потужні засоби для роботи з файловою системою. Наведемо кілька прикладів.

Пошук та фільтрація файлів

# Пошук всіх файлів .log старше 30 днів
Get-ChildItem -Path "C:\Logs" -Recurse -Filter "*.log" |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) }

Пояснення:

  • Get-ChildItem рекурсивно проходить всі підпапки.

  • Where-Object фільтрує файли за датою останньої зміни.

Автоматичне видалення старих файлів

# Видалення файлів старше 30 днів
Get-ChildItem "C:\Temp" -Recurse |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Remove-Item -Force

Кейс:
Цей скрипт зручно використовувати для очищення тимчасових директорій або архівів логів, щоб уникнути заповнення диску.

Управління процесами та сервісами

PowerShell дозволяє отримувати інформацію про процеси, завершувати їх та керувати службами.

Перегляд ресурсів процесів

# Сортування процесів за використанням пам'яті
Get-Process | Sort-Object -Property WorkingSet -Descending | Select-Object -First 10

Пояснення:
Цей скрипт показує 10 процесів, які споживають найбільше оперативної пам’яті. Зручно для швидкої діагностики навантаження на сервер.

Управління службами

# Перезапуск служби Windows Update
Restart-Service -Name wuauserv -Force

Кейс:
Корисно при автоматичному вирішенні проблем зі службами, які зависли або працюють некоректно.

Робота з мережевими ресурсами

Перевірка доступності хостів

$hosts = @("server01", "server02", "192.168.1.10")

foreach ($host in $hosts) {
if (Test-Connection -ComputerName $host -Count 2 -Quiet) {
Write-Host "$host доступний"
} else {
Write-Host "$host недоступний"
}
}

Пояснення:

  • Test-Connection — аналог команди ping.

  • Скрипт перебирає список хостів і виводить їх статус.

Моніторинг відкритих портів

# Перевірка порту 443 на сервері
Test-NetConnection -ComputerName "example.com" -Port 443

Цей скрипт дозволяє швидко перевіряти доступність конкретного сервісу без встановлення сторонніх утиліт.

Автоматизація роботи з Active Directory

Для адміністрування користувачів та груп у AD PowerShell незамінний.

Створення нового користувача

New-ADUser -Name "Ivan Petrov" -GivenName "Ivan" -Surname "Petrov" `
-Path "OU=Employees,DC=example,DC=com" -AccountPassword (ConvertTo-SecureString "P@ssw0rd" -AsPlainText -Force) `
-Enabled $true

Пояснення:

  • Створює нового користувача з заданим паролем і розташуванням у певному OU.

  • Використовує ConvertTo-SecureString для безпечного зберігання пароля.

Масове оновлення груп

# Додаємо користувачів у групу
Import-Csv "users.csv" | ForEach-Object {
Add-ADGroupMember -Identity "IT-Staff" -Members $_.SamAccountName
}

Кейс:
Швидкий спосіб оновити права доступу великої кількості співробітників.

Логування та автоматизація завдань

PowerShell дозволяє створювати сценарії автоматичного логування та моніторингу.

Логування змін у файлах

$path = "C:\Data"
$log = "C:\Logs\FileChanges.log"

Register-ObjectEvent -InputObject (Get-Item $path) -EventName "Changed" -Action {
$event = $Event.SourceEventArgs
Add-Content $log "$(Get-Date) - $($event.FullPath) змінено"
}

Пояснення:

  • Використовуємо події файлової системи для реєстрації змін.

  • Лог можна потім аналізувати для аудиту або відновлення.

Планування скриптів через Task Scheduler

# Створення задачі для щоденного запуску скрипта
$action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\Scripts\backup.ps1"
$trigger = New-ScheduledTaskTrigger -Daily -At 02:00
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "DailyBackup" -Description "Щоденне резервне копіювання"

Кейс:
Повністю автоматизоване резервне копіювання без ручного втручання.

Практичні кейси

  1. Моніторинг серверів - об’єднання Get-Process, Get-Service та Test-NetConnection для автоматичного звіту про стан інфраструктури.

  2. Очищення тимчасових файлів - регулярний скрипт видалення старих .log і .tmp файлів для збереження дискового простору.

  3. Масові зміни в Active Directory - швидке оновлення груп і прав користувачів за допомогою CSV-файлів.

  4. Аудит та логування - автоматичне відстеження змін у критичних каталогах для контролю безпеки.

Висновки

PowerShell — універсальний інструмент для автоматизації адміністративних та DevOps-завдань. Його перевага полягає в об’єктній моделі та гнучкості: ви можете створювати прості команди або складні сценарії, інтегруючи їх з Windows, AD, мережею та зовнішніми сервісами.

Використання наведених у статті скриптів дозволяє:

  • зменшити ручну роботу та ризик помилок;

  • оптимізувати ресурси серверів;

  • швидко отримувати діагностичну інформацію;

  • автоматизувати рутинні процеси в IT-інфраструктурі.

Освоєння PowerShell і регулярне впровадження скриптів у робочі процеси підвищує ефективність команди та робить адміністрування більш передбачуваним і контрольованим.

Related posts

Корисні команди Linux (Ubuntu): практичний довідник для системних адміністраторів та DevOps

Вступ Linux є основою більшості сучасної серверної інфраструктури. Веб-сервери, системи контейнеризації, хмарні платформи, CI/CD-пайплайни та мережеві сервіси у переважній більшості випадків працюють саме на Linux. Серед різних дистрибутивів особлив...

CheatSheets iron_will 13/03/2026

Systemd: розширені сценарії керування сервісами

Systemd давно перестав бути просто менеджером ініціалізації. Сьогодні це повноцінна екосистема для оркестрації процесів, управління ресурсами, налагодження залежностей і моніторингу сервісів у реальному часі. Незважаючи на це, більшість адміністратор...

DevOps iron_will 03/03/2026

Глибока оптимізація Linux-серверів під production-навантаження

Запустити сервер в Linux - справа нескладна. Але налаштувати його так, щоб він витримував тисячі одночасних з'єднань, мінімізував латентність і не «падав» під піковим навантаженням - це вже інженерна задача, яка потребує системного підходу. Дистрибут...

DevOps iron_will 03/03/2026

Fail2Ban: основи безпеки та практичні способи захисту серверів

Вступ Забезпечення базового рівня безпеки серверів - це не додатковий етап після розгортання інфраструктури, а обов’язкова складова її проєктування. Будь-який публічно доступний сервіс - SSH, вебсервер, поштовий шлюз або VPN - стає об’єктом автомати...

DevOps iron_will 26/02/2026

Ansible: основи автоматизації, принципи роботи та приклади корисних playbook

Вступ Автоматизація інфраструктури стала стандартом у сучасній розробці та експлуатації програмного забезпечення. Концепції Infrastructure as Code (IaC), безперервної інтеграції та безперервного розгортання (CI/CD), керування конфігураціями та масшт...

DevOps iron_will 24/02/2026

PowerShell: основні поняття та основи роботи з Windows та Active Directory

PowerShell - це потужне середовище автоматизації та керування системами, яке поєднує командний рядок, мову сценаріїв і доступ до .NET-екосистеми. Для IT-фахівців, що працюють із Windows-інфраструктурою, адмініструванням серверів або корпоративними ка...

DevOps iron_will 21/02/2026

Comments (0)

You must be logged in to leave a comment.

This website uses cookies to improve your experience. Learn more