Skip to content

Latest commit

 

History

History
160 lines (122 loc) · 6.36 KB

File metadata and controls

160 lines (122 loc) · 6.36 KB

ADloader

ADloader

Утилита для ввода ПК в домен Active Directory
Простая, надёжная, user-friendly

Version .NET 8 Platform License Author


📋 О проекте

ADloader — портативная Windows-утилита для быстрого ввода компьютера в домен Active Directory. Разработана для IT-специалистов, которым нужен простой и надёжный инструмент без лишней сложности.

Ключевые возможности

  • 🔗 Ввод ПК в домен одним кликом
  • 👤 Автоматическая проверка существования пользователя в AD
  • Создание нового пользователя (с подтверждением) если не найден
  • 📋 Встроенный лог-вьюер — каждый шаг виден в реальном времени
  • 📁 Файловое логирование в %APPDATA%/ADloader/logs/
  • 🔄 Перезагрузка одной кнопкой после успешного ввода
  • 🛡️ Автоматический запрос прав администратора (UAC)
  • 🔍 Предварительные проверки: права админа, сеть, DNS

🚀 Быстрый старт

Вариант 1: Готовый EXE (рекомендуется)

  1. Скачайте ADloader.UI.WPF.exe из Releases
  2. Запустите файл (UAC запросит права автоматически)
  3. Заполните три поля: Домен, Логин, Пароль
  4. Нажмите «Подключить к домену»
  5. После успеха — нажмите «Перезагрузить»

Примечание: .NET Runtime НЕ требуется — всё включено в один EXE-файл.

Вариант 2: Из исходников

# Клонировать репозиторий
git clone https://github.com/YOUR_USERNAME/ADloader.git
cd ADloader

# Запуск (требуется .NET 8 SDK)
dotnet run --project ADloader.UI.WPF

# Или собрать один EXE
dotnet publish ADloader.UI.WPF -c Release -r win-x64 --self-contained true -p:PublishSingleFile=true -o ./publish

🖥️ Системные требования

Параметр Требование
ОС Windows 10 / Windows 11 (все сборки)
Архитектура x64
Права Администратор (запрашиваются автоматически)
Сеть Подключение к сети с доступом к контроллеру домена
.NET Runtime Не требуется (self-contained)

🏗️ Архитектура

Проект построен по принципам Clean Architecture и MVVM:

ADloader/
├── ADloader.Domain/            # Модели и интерфейсы (0 зависимостей)
│   ├── Models/
│   │   └── DomainJoinRequest.cs
│   └── Interfaces/
│       ├── IActiveDirectoryService.cs
│       └── IDomainJoinService.cs
├── ADloader.Application/       # Бизнес-логика (Use Cases)
│   ├── Common/
│   │   └── Result.cs
│   └── UseCases/
│       └── JoinDomainUseCase.cs
├── ADloader.Infrastructure/    # Реализации (AD + Win32 API)
│   ├── Services/
│   │   ├── ActiveDirectoryService.cs
│   │   └── DomainJoinService.cs
│   └── Logging/
│       └── FileLoggerProvider.cs
└── ADloader.UI.WPF/            # Интерфейс (WPF + MVVM)
    ├── MainWindow.xaml
    ├── ViewModels/
    │   └── MainViewModel.cs
    └── App.xaml.cs
graph TD
    UI["🖥️ UI (WPF)"] --> App["⚙️ Application"]
    UI --> Infra["🔧 Infrastructure"]
    App --> Domain["📦 Domain"]
    Infra --> Domain
    Infra --> App
    
    Infra -->|P/Invoke| Win32["🪟 netapi32.dll"]
    Infra -->|System.DirectoryServices| AD["🏢 Active Directory"]
Loading

🔧 Технологии

Компонент Технология
Framework .NET 8.0
UI WPF + MVVM
MVVM Toolkit CommunityToolkit.Mvvm
DI Microsoft.Extensions.DependencyInjection
AD System.DirectoryServices.AccountManagement
Domain Join Win32 P/Invoke (NetJoinDomain)
Logging Microsoft.Extensions.Logging → File + UI

🔍 Troubleshooting

Проблема Решение
«Отказано в доступе» Убедитесь, что учётная запись имеет права на ввод ПК в домен
«Домен не найден» Проверьте FQDN домена (например: corp.domain.local)
«Контроллер домена недоступен» Проверьте сетевое подключение и настройки DNS
«Неверный пароль» Проверьте правильность логина и пароля
«Компьютер уже в домене» ПК уже состоит в этом домене, повторный ввод не нужен
Нет UAC-запроса Запустите EXE правой кнопкой → «Запуск от имени администратора»

📂 Подробные логи: %APPDATA%\ADloader\logs\


📄 Лицензия

MIT © OneDeadMachine


Made with ❤️ by OneDeadMachine