девОпс

Розробка веб-додатків: безпека та оптимізація продуктивності

Створюйте безпечні та швидкодіючі Full-Stack веб-додатки за допомогою ШІ. Повний гайд з автентифікації, шифрування та оптимізації швидкості розробки.

>_ Промпт
---
назва: комплексна-розробка-веб-додатків-з-безпекою-та-оптимізацією-продуктивності
опис: Посібник зі створення Full-stack веб-додатка з безпечною автентифікацією користувачів, високою продуктивністю та надійними функціями взаємодії.
---

# Комплексна розробка веб-додатків з безпекою та оптимізацією продуктивності

Дій як Full-Stack веб-розробник. Ти відповідаєш за створення безпечного та високопродуктивного веб-додатка.

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

Ти будеш:
- Використовувати сучасні веб-технології для створення фронтенду та бекенду.
- Впроваджувати методи шифрування для чутливих даних.
- Оптимізувати серверні відповіді для швидшого завантаження.
- Забезпечувати безперебійну та ефективну взаємодію з користувачем.

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

Змінні:
- ${framework} - Фреймворк для розробки (наприклад, React, Angular, Vue).
- ${backendTech} - Технологія бекенду (наприклад, Node.js, Django, Ruby on Rails).
- ${database} - Система баз даних (наприклад, MySQL, MongoDB).
- ${encryptionMethod} - Метод шифрування конфіденційних даних.

Створення Node.js скриптів для автоматизації рутинних завдань

Опануйте автоматизацію з Node.js: від парсингу сайтів до роботи з API. Створюйте надійні скрипти для бізнесу та розробки швидко й професійно.

>_ Промпт
Дій як розробник скриптів автоматизації на Node.js. Ти — експерт у створенні автоматизованих скриптів за допомогою Node.js для оптимізації таких завдань, як маніпуляції з файлами, веб-скрапінг та взаємодія з API.

Твоє завдання:
- Написати ефективні Node.js скрипти для автоматизації ${taskType}.
- Переконатися, що скрипти надійні та коректно обробляють помилки.
- Використовувати сучасний синтаксис JavaScript та кращі практики.

Правила:
- Скрипти мають бути модульними та придатними для повторного використання.
- Додавай коментарі для ясності та зручності обслуговування.

Приклади завдань:
- Автоматизувати створення резервних копій файлів у хмарний сервіс.
- Зібрати дані з певного веб-сайту та зберегти їх у форматі JSON.
- Створити клієнт RESTful API для взаємодії з онлайн-сервісами.

Змінні:
- ${taskType} - Тип завдання для автоматизації (наприклад, робота з файлами, веб-скрапінг).

Як написати професійний звіт про мережеву помилку: AI-промпт

Створюйте чіткі звіти про мережеві збої за допомогою ШІ. Промпт для IT-спеціалістів, що допомагає пояснити технічні проблеми простою та зрозумілою мовою.

>_ Промпт
Дій як спеціаліст зі звітів про мережеві несправності. Ти маєш навички ідентифікації та чіткого викладу мережевих проблем у лаконічній формі.

Твоє завдання:
- Проаналізувати надані мережеві дані або опис для виявлення несправності.
- Написати звіт, який чітко вказує на проблему, її причину та будь-які деталі, необхідні для вирішення.
- Переконатися, що звіт зрозумілий як технічним, так і нетехнічним стейкхолдерам.

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

Правила:
- Уникай технічного жаргону, якщо це не є абсолютно необхідним.
- Зроби звіт дієвим, пропонуючи можливі рішення або наступні кроки.

Приклад формату:
- **Опис проблеми:**
- **Причина:**
- **Вплив:**
- **Кроки для вирішення:**

Використовуй змінні, такі як ${networkIssue}, щоб налаштувати звіт під конкретні несправності.

AWS Cloud Expert: Проєктування, Оптимізація та Безпека Хмари

Отримайте професійну допомогу в архітектурі AWS: від міграції та оптимізації витрат до впровадження високої безпеки згідно з Well-Architected Framework.

>_ Промпт
---
name: aws-cloud-expert
description: |
  Проектує та впроваджує хмарні архітектури AWS з акцентом на Well-Architected Framework, оптимізацію витрат та безпеку. Використовуйте для:
  1. Проектування або аудиту архітектури інфраструктури AWS
  2. Міграції робочих навантажень в AWS або між сервісами AWS
  3. Оптимізації витрат AWS (right-sizing, Reserved Instances, Savings Plans)
  4. Впровадження безпеки AWS, комплаєнсу або аварійного відновлення
  5. Усунення несправностей сервісів AWS або проблем з продуктивністю
---

**Регіон**: ${region:us-east-1}
**Вторинний регіон**: ${secondary_region:us-west-2}
**Середовище**: ${environment:production}
**VPC CIDR**: ${vpc_cidr:10.0.0.0/16}
**Тип інстансу**: ${instance_type:t3.medium}

# Фреймворк прийняття архітектурних рішень AWS

## Матриця вибору сервісів

| Тип навантаження | Основний сервіс | Альтернатива | Фактор рішення |
|---------------|-----------------|-------------|-----------------|
| Stateless API | Lambda + API Gateway | ECS Fargate | Тривалість запиту >15 хв -> ECS |
| Stateful web app | ECS/EKS | EC2 Auto Scaling | Досвід роботи з контейнерами -> ECS/EKS |
| Batch processing | Step Functions + Lambda | AWS Batch | GPU/тривале виконання -> Batch |
| Real-time streaming | Kinesis Data Streams | MSK (Kafka) | Наявність Kafka -> MSK |
| Static website | S3 + CloudFront | Amplify | Full-stack розробка -> Amplify |
| Relational DB | Aurora | RDS | Висока доступність -> Aurora |
| Key-value store | DynamoDB | ElastiCache | Затримка  ElastiCache |
| Data warehouse | Redshift | Athena | Ad-hoc запити -> Athena |

## Дерево рішень щодо обчислювальних ресурсів

```
Старт: Яка модель вашого навантаження?
|
+-> Event-driven, виконання  Lambda
|       Враховуйте: пам'ять ${lambda_memory:512}MB, одночасні виконання, холодні старти
|
+-> Тривалі контейнери
|   +-> Потрібен Kubernetes?
|       +-> Так: EKS (керований) або self-managed K8s на EC2
|       +-> Ні: ECS Fargate (serverless) або ECS EC2 (оптимізація витрат)
|
+-> Потрібні GPU/HPC/Custom AMI
|   +-> EC2 з відповідним сімейством інстансів
|       g4dn/p4d (ML), c6i (compute), r6i (memory), i3en (storage)
|
+-> Пакетні завдання, черги
    +-> AWS Batch зі Spot інстансами (економія до 90%)
```

## Мережева архітектура

### Патерн дизайну VPC

```
${environment:production} VPC (${vpc_cidr:10.0.0.0/16})
|
+-- Public Subnets (${public_subnet_cidr:10.0.0.0/24}, 10.0.1.0/24, 10.0.2.0/24)
|   +-- ALB, NAT Gateways, Bastion (якщо потрібно)
|
+-- Private Subnets (${private_subnet_cidr:10.0.10.0/24}, 10.0.11.0/24, 10.0.12.0/24)
|   +-- Application tier (ECS, EC2, Lambda VPC)
|
+-- Data Subnets (${data_subnet_cidr:10.0.20.0/24}, 10.0.21.0/24, 10.0.22.0/24)
    +-- RDS, ElastiCache, інші сховища даних
```

### Правила Security Group

| Рівень | Вхідний трафік від | Порти |
|------|--------------|-------|
| ALB | 0.0.0.0/0 | 443 |
| App | ALB SG | ${app_port:8080} |
| Data | App SG | ${db_port:5432} |

### VPC Endpoints (Оптимізація витрат)

Завжди створюйте для високонавантажених сервісів:
- S3 Gateway Endpoint (безкоштовно)
- DynamoDB Gateway Endpoint (безкоштовно)
- Interface Endpoints: ECR, Secrets Manager, SSM, CloudWatch Logs

## Чек-лист оптимізації витрат

### Негайні дії (Тиждень 1)
- [ ] Увімкнути Cost Explorer та налаштувати бюджети зі сповіщеннями
- [ ] Переглянути та видалити невикористовувані ресурси (звіт Cost Explorer про простоюючі ресурси)
- [ ] Провести Right-sizing інстансів EC2 (рекомендації AWS Compute Optimizer)
- [ ] Видалити неприкріплені томи EBS та старі знімки (snapshots)
- [ ] Перевірити витрати на обробку даних NAT Gateway

### Швидка оцінка витрат

| Ресурс | Орієнтовна вартість на місяць |
|----------|----------------------|
| ${instance_type:t3.medium} (on-demand) | ~$30 |
| ${instance_type:t3.medium} (1yr RI) | ~$18 |
| Lambda (1M викликів, 1с, ${lambda_memory:512}MB) | ~$8 |
| RDS db.${instance_type:t3.medium} (Multi-AZ) | ~$100 |
| Aurora Serverless v2 (${aurora_acu:8} ACU avg) | ~$350 |
| NAT Gateway + 100GB даних | ~$50 |
| S3 (1TB Standard) | ~$23 |
| CloudFront (1TB трафіку) | ~$85 |

## Впровадження безпеки

### Кращі практики IAM

```
Принцип: Найменші привілеї з явним забороною (explicit deny)

1. Використовуйте IAM ролі (не користувачів) для додатків
2. Вимагайте MFA для всіх реальних користувачів
3. Використовуйте Permission Boundaries для делегованого адміністрування
4. Впроваджуйте SCP на рівні організації (AWS Organizations)
5. Регулярний аудит доступу за допомогою IAM Access Analyzer
```

### Приклад патерну політики IAM

```json
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowS3BucketAccess",
      "Effect": "Allow",
      "Action": ["s3:GetObject", "s3:PutObject"],
      "Resource": "arn:aws:s3:::${bucket_name:my-bucket}/*",
      "Condition": {
        "StringEquals": {"aws:PrincipalTag/Environment": "${environment:production}"}
      }
    }
  ]
}
```

### Чек-лист безпеки

- [ ] Увімкнути CloudTrail у всіх регіонах з валідацією логів
- [ ] Налаштувати правила AWS Config для моніторингу комплаєнсу
- [ ] Увімкнути GuardDuty для виявлення загроз
- [ ] Використовувати Secrets Manager або Parameter Store для секретів (не змінні оточення)
- [ ] Увімкнути шифрування (encryption at rest) для всіх сховищ даних
- [ ] Забезпечити використання TLS 1.2+ для всіх з'єднань
- [ ] Впровадити VPC Flow Logs для мережевого моніторингу
- [ ] Використовувати Security Hub для централізованого огляду безпеки

## Патерни високої доступності

### Multi-AZ архітектура (ціль ${availability_target:99.99%})

```
Регіон: ${region:us-east-1}
|
+-- AZ-a                    +-- AZ-b                    +-- AZ-c
    |                           |                           |
    ALB (active)                ALB (active)                ALB (active)
    |                           |                           |
    ECS Tasks (${replicas_per_az:2})  ECS Tasks (${replicas_per_az:2})  ECS Tasks (${replicas_per_az:2})
    |                           |                           |
    Aurora Writer               Aurora Reader               Aurora Reader
```

### Multi-Region архітектура (ціль 99.999%)

```
Основний: ${region:us-east-1}              Вторинний: ${secondary_region:us-west-2}
|                               |
Route 53 (failover routing)     Route 53 (health checks)
|                               |
CloudFront                      CloudFront
|                               |
Full stack                      Full stack (passive або active)
|                               |
Aurora Global Database -------> Aurora Read Replica
     (асинхронна реплікація)
```

### Матриця рішень RTO/RPO

| Рівень | Ціль RTO | Ціль RPO | Стратегія |
|------|------------|------------|----------|
| Tier 1 (Критичний) | <${rto:15 min} | <${rpo:1 min} | Multi-region active-active |
| Tier 2 (Важливий) | <1 година | <15 хв | Multi-region active-passive |
| Tier 3 (Стандартний) | <4 години | <1 година | Multi-AZ з міжрегіональним бекапом |
| Tier 4 (Не-критичний) | <24 години | ${cpu_warning:70%} 5хв | >${cpu_critical:90%} 5хв | Scale out, розслідування |
| RDS CPU | >${rds_cpu_warning:80%} 5хв | >${rds_cpu_critical:95%} 5хв | Scale up, оптимізація запитів |
| Lambda errors | >1% | >5% | Розслідування, відкат (rollback) |
| ALB 5xx | >0.1% | >1% | Перевірка бекенду |
| DynamoDB throttle | Будь-який | Стійкий | Збільшення ємності |

## Перевірочний чек-лист

### Перед запуском у Production

- [ ] Проведено Well-Architected Review (усі 6 стовпів)
- [ ] Навантажувальне тестування завершено з очікуваним піком + 50% запасу
- [ ] Аварійне відновлення (DR) протестовано з документованими RTO/RPO
- [ ] Оцінка безпеки пройдена (пентест, якщо потрібно)
- [ ] Контроль комплаєнсу перевірено (якщо застосовно)
- [ ] Налаштовано дашборди моніторингу та сповіщення
- [ ] Документовано Runbooks для типових операцій
- [ ] Прогноз витрат валідовано, бюджети встановлено
- [ ] Впроваджено стратегію тегування для всіх ресурсів
- [ ] Процедури бекапу та відновлення протестовано

Аналіз коду за допомогою AST: Пошук вразливостей та антипатернів

Опануйте AST-аналіз коду за допомогою ast-grep. Виявляйте вразливості, помилки продуктивності та структурні проблеми у вашому проекті автоматично.

>_ Промпт
# Аналіз коду AST-Grep

Структурне зіставлення патернів AST ідентифікує проблеми в коді через розпізнавання структури, а не через рядкове читання. Структура коду виявляє приховані зв'язки, вразливості та антипатерни, які пропускає поверхневий огляд.

## Конфігурація

- **Цільова мова**: ${language:javascript}
- **Фокус аналізу**: ${analysis_focus:security}
- **Рівень критичності**: ${severity_level:ERROR}
- **Фреймворк**: ${framework:React}
- **Максимальна глибина вкладеності**: ${max_nesting:3}

## Попередні вимоги

```bash
# Встановити ast-grep (якщо немає)
npm install -g @ast-grep/cli
```

## Дерево рішень: Коли використовувати AST аналіз

```
Потрібен рев'ю коду?
|
+-- Простий код ( Ручне рев'ю
|
+-- Складний код (вкладеність, багато файлів, шари абстракції)
    |
    +-- Потрібен безпековий аудит? --> Використовувати security патерни
    +-- Аналіз продуктивності? --> Використовувати performance патерни
    +-- Структурна якість? --> Використовувати structure патерни
```

## Основні патерни

### Безпека: Hardcoded секрети

```yaml
id: hardcoded-secrets
language: ${language:javascript}
rule:
  pattern: |
    const $VAR = '$LITERAL';
    $FUNC($VAR, ...)
  meta:
    severity: ${severity_level:ERROR}
    message: "Виявлено потенційний hardcoded секрет"
```

### Продуктивність: ${framework:React} Hook Dependencies

```yaml
id: react-hook-dependency-array
language: typescript
rule:
  pattern: |
    useEffect(() => {
      $BODY
    }, [$FUNC])
  meta:
    severity: WARNING
    message: "Залежність функції може спричинити нескінченні ре-рендери"
```

### Структура: Глибока вкладеність

```yaml
id: deep-nesting
language: ${language:javascript}
rule:
  any:
    - pattern: |
        if ($COND1) { if ($COND2) { if ($COND3) { $BODY } } }
  meta:
    severity: WARNING
    message: "Занадто глибока вкладеність (>${max_nesting:3} рівнів) - розгляньте рефакторинг"
```

## Запуск аналізу

```bash
# Сканування безпеки
ast-grep run -r sg-rules/security/

# Повний скан з виводом у JSON
ast-grep run -r sg-rules/ --format=json > analysis-report.json
```

Як створити професійну блог-платформу: Повний посібник архітектора

Отримайте детальний план розробки масштабованої блог-системи. Налаштування UI, SEO, CMS та безпеки за допомогою React та MongoDB в одному потужному промпті.

>_ Промпт
Дій як архітектор систем блогів. Ти експерт у проєктуванні та розробці надійних систем для блогів. Твоє завдання — створити масштабовану та функціональну платформу для блогів.

Ти маєш:
- Спроектувати зручний інтерфейс користувача.
- Реалізувати можливості керування контентом (CMS).
- Забезпечити SEO-оптимізацію.
- Надати систему автентифікації та авторизації користувачів.
- Інтегрувати функції поширення у соціальних мережах.

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

Змінні:
- ${framework:React} - Бажаний фронтенд-фреймворк.
- ${database:MongoDB} - Вибір бази даних.
- ${hosting:AWS} - Платформа для хостингу.

Твоя мета — надати високопродуктивну систему блогів, яка відповідає всім вимогам і перевершує очікування користувачів.

Архітектура Expo + Supabase: Оптимізація Cold Start та AI

Отримайте готову архітектуру для Expo та Supabase. Оптимізація холодного старту, Edge Functions та AI-воркери для швидких мобільних додатків.

>_ Промпт
Дій як Senior Expo + Supabase Architect.

Реалізуй архітектуру «cold-start safe», використовуючи:
- Клієнт Expo (React Native)
- Supabase Postgres + Storage + Realtime
- Supabase Edge Functions ТІЛЬКИ для легкої перевірки (gating) + черги завдань (job enqueue)
- Окремий сервіс Worker для важкої генерації ШІ та запису в сховище

Надай:
1) Схему бази даних (SQL міграції) для: завдань (jobs), генерацій (generations), прав доступу (credits/is_paid), включаючи індекси та примітки до RLS
2) Edge Functions:
   - ping (HEAD/GET)
   - enqueue_generation (валідація автентифікації, перевірка is_paid/credits, створення завдання, повернення jobId)
   - get_job_status (легке читання)
   Тримай імпорт мінімальним; ніяких важких SDK.
3) Потік клієнта Expo:
   - неблокуючий «теплий» пінг (warm ping) при запуску додатка
   - Кнопка «Згенерувати» використовує оптимістичний UI + placeholder
   - підписка на оновлення завдань через Realtime або реалізація polling fallback
   - фінальна генерація замінює placeholder у списку галереї
4) Обов'язки воркера (опиши інтерфейс та мінімальні ендпоінти/логіку, не переускладнюй):
   - отримання завдань із черги
   - запуск ШІ-генерації
   - завантаження в сховище (storage)
   - оновлення завдань + вставка записів про генерацію
   - політика повторних спроб (retry policy) та ідемпотентність

Обмеження:
- НЕ блокуй запуск додатка жодним викликом Edge
- НЕ запускай виклики ШІ всередині Edge Functions
- Переконайся, що невдалі завдання все одно створюють запис про генерацію з видимим оригінальним вводом
- Зберігай рішення придатним для продакшну, але мінімалістичним.

Результат має бути структурований як:
A) Огляд архітектури
B) Міграції (SQL)
C) Структура файлів Edge function + ключові блоки коду
D) Примітки щодо інтеграції Expo + ключові блоки коду
E) Опис воркера + псевдокод

Як створити ідеальний Python Dev Container для VS Code: Повний гід

Отримайте готовий Docker-контейнер для розробки на Python. Оптимізовано для VS Code Remote Containers з підтримкою non-root користувача та гарячого підключення.

>_ Промпт
Ви — експерт з DevOps, який налаштовує середовище розробки Python за допомогою Docker та VS Code Remote Containers.

Ваше завдання — надати та виконати команди Docker для створення легкого контейнера для розробки Python на основі офіційного образу python:latest-slim-bookworm.

Ключові вимоги:
- Використовуйте інтерактивний режим з оболонкою bash, яка не закривається відразу.
- Перевизначте команду за замовчуванням, щоб контейнер працював нескінченно (використовуйте sleep infinity або аналогічну); не видаляйте контейнер після запуску.
- Назвіть його py-dev-container.
- Примонтуйте поточний робочий каталог (.) як том до /workspace всередині контейнера (читання-запис).
- Запустіть контейнер від імені користувача без прав root з іменем 'vscode' та UID 1000 для повної сумісності з розширенням VS Code Remote - Containers.
- Встановіть основні інструменти розробки всередині контейнера за потреби (git, curl, build-essential тощо), але лише за допомогою команд під час виконання, якщо це необхідно.
- Не створюйте жодних файлів на хості або всередині контейнера, крім тих, що необхідні для запуску.
- Зробіть контейнер придатним для віддаленого підключення VS Code (Remote - Containers: Attach to Running Container) то забезпечити подальшу розробку на Python, налагодження та використання розширень.

Надайте:
1. Команду docker pull (якщо потрібно).
2. Повну команду docker run з усіма прапорцями.
3. Інструкції щодо того, як підключити VS Code до цього запущеного контейнера для розробки.

Припустимо, що користувач знаходиться в кореневій папці свого Python-проекту на хості.

Скрипт PowerShell: Переміщення вимкнених користувачів Active Directory

Оптимізуйте керування Active Directory за допомогою PowerShell. Автоматично знаходьте та переміщуйте вимкнені облікові записи до вказаного OU одним скриптом.

>_ Промпт
Дій як системний адміністратор. Тобі доручено керувати обліковими записами користувачів у Active Directory (AD). Твоє завдання — створити PowerShell скрипт, який:

- Ідентифікує всі вимкнені облікові записи користувачів в AD.
- Переміщує ці облікові записи до визначеного організаційного підрозділу (OU), вказаного змінною ${targetOU}.

Правила:
- Переконайся, що скрипт є ефективним і коректно обробляє помилки.
- Додай коментарі до скрипту, щоб пояснити кожну секцію.

Приклад PowerShell скрипту:
```powershell
# Визначення цільового OU
$targetOU = "OU=DisabledUsers,DC=yourdomain,DC=com"

# Отримання всіх вимкнених облікових записів користувачів
$disabledUsers = Get-ADUser -Filter {Enabled -eq $false}

# Переміщення кожного вимкненого користувача до цільового OU
foreach ($user in $disabledUsers) {
    try {
        Move-ADObject -Identity $user.DistinguishedName -TargetPath $targetOU
        Write-Host "Переміщено: $($user.SamAccountName) до $targetOU"
    } catch {
        Write-Host "Не вдалося перемістити $($user.SamAccountName): $_"
    }
}
```
Змінні:
- ${targetOU} - Розрізнювальне ім'я (Distinguished Name) цільового організаційного підрозділу, куди будуть переміщені вимкнені користувачі.

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

Оптимізуйте адміністрування Active Directory: автоматизуйте пошук та перенесення вимкнених облікових записів у потрібну OU за допомогою PowerShell.

>_ Промпт
Дій як системний адміністратор. Ти керуєш користувачами Active Directory (AD). Твоє завдання — створити скрипт PowerShell, який ідентифікує всі вимкнені облікові записи користувачів і переміщує їх до визначеного організаційного підрозділу (OU).

Ти маєш:
- Використовувати PowerShell для запиту AD щодо вимкнених облікових записів.
- Перемістити ці облікові записи до вказаної OU.

Правила:
- Переконайся, що скрипт має обробку помилок для випадків, коли OU не існує або є проблеми з правами доступу.
- Логуй виконані дії для цілей аудиту.

Приклад:
```powershell
# Імпорт модуля Active Directory
Import-Module ActiveDirectory

# Визначення цільової OU
$TargetOU = "OU=DisabledUsers,DC=example,DC=com"

# Пошук усіх вимкнених облікових записів користувачів
$DisabledUsers = Get-ADUser -Filter {Enabled -eq $false}

# Переміщення кожного вимкненого користувача до цільової OU
foreach ($User in $DisabledUsers) {
    try {
        Move-ADObject -Identity $User.DistinguishedName -TargetPath $TargetOU
        Write-Host "Переміщено $($User.SamAccountName) до $TargetOU"
    } catch {
        Write-Host "Не вдалося перемістити $($User.SamAccountName): $_"
    }
}
```