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

event 16.03.2026 10:00
| category DevOps | person iron_will | comment 0 | visibility 184 | |

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

Мережеві порти: що це таке, які вони бувають, навіщо потрібні та які мають обмеження

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

category Network person iron_will event 05/06/2026

Robocopy: можливості та переваги перед звичайним Copy/Xcopy

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

category DevOps person iron_will event 28/05/2026

VPN, SSH та базова безпека інфраструктури

Вступ Сучасна IT-інфраструктура функціонує в умовах постійного зовнішнього впливу: сканування портів, автоматизовані брутфорс-атаки, експлуатація вразливостей сервісів та цільові кібератаки. Навіть невеликі системи без належного захисту можуть стати...

category Security person iron_will event 26/05/2026

Автоматизація деплою через GitHub Actions

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

category DevOps person iron_will event 26/05/2026

Kubernetes для новачків: базові концепції

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

category Kubernetes person iron_will event 17/05/2026

Що таке RAID: рівні RAID, принцип роботи та навіщо він потрібен

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

category System administration person iron_will event 10/05/2026
cookie
This website uses cookies to improve your experience. Learn more