WinForms приложение для сканирования членов локальной группы "Администраторы" на удаленных компьютерах в домене Windows.
- Универсальный поиск группы Администраторы по SID
S-1-5-32-544(работает на любом языке ОС) - NetAPI32 сканирование через
NetLocalGroupGetMembers- более надёжно чем WMI для доменных групп - Загрузка компьютеров из Active Directory с фильтрацией рабочих станций
- Разворачивание доменных групп в отдельных пользователей и подгрупп
- Параллельное сканирование с настройкой количества потоков
- Детальная информация о типах учетных записей:
- Локальные/доменные пользователи и группы
- Статус учетных записей (отключен/заблокирован/пароль не истекает)
- Вложенные группы и развернутые члены
- Встроенные группы и компьютерные учётки
- Экспорт результатов в CSV
- Progress bar и возможность остановки сканирования
- .NET 8.0 с Windows Forms
- Права доменного администратора для NetAPI32 доступа к удаленным компьютерам
- Открытый доступ к NetAPI32/RPC на целевых компьютерах (порты 135, 445)
- Настроенный брандмауэр для Remote Administration (правило "Remote Administration")
- Клонируйте репозиторий:
git clone https://github.com/ВАШ_USERNAME/who_admin.git
cd who_admin- Восстановите пакеты NuGet:
dotnet restore- Соберите проект:
dotnet build- Запустите приложение:
dotnet runИли запустите исполняемый файл: bin\Debug\net8.0-windows\who_admin.exe
-
Загрузка компьютеров:
- Нажмите "Загрузить ПК из AD" для автоматической загрузки из домена
- Или введите имена компьютеров вручную (по одному в строке)
-
Настройка сканирования:
- Установите галочку "Разворачивать доменные группы" для детального анализа
- Настройте количество параллельных потоков (по умолчанию = количество ядер)
-
Запуск сканирования:
- Нажмите "Сканировать"
- Наблюдайте за прогрессом в строке состояния
- При необходимости нажмите "Стоп" для остановки
-
Экспорт результатов:
- Нажмите "Экспорт CSV" для сохранения результатов
Приложение показывает следующую информацию для каждого компьютера:
| Колонка | Описание |
|---|---|
| Компьютер | Имя сканируемого компьютера |
| Статус | Результат сканирования (OK, ошибка) |
| Тип члена | Локальный/доменный пользователь/группа/алиас |
| Учетная запись | Полное имя учетной записи с доменом |
| Источник | Источник информации (NetAPI32, AD recursive) |
| Развёрнуто из | Родительская группа (для развернутых членов) |
Компьютер | Тип члена | Учетная запись
-------------|------------------------|--------------------------------
PC001 | Доменный пользователь [ОТКЛЮЧЁН] | DOMAIN\john.doe
PC001 | Доменная группа | DOMAIN\Domain Admins
PC001 | Локальный пользователь | PC001\Administrator
PC001 | Доменный пользователь (из группы) | DOMAIN\admin1
PC001 | Встроенная группа | BUILTIN\Backup Operators
- Использует NetAPI32 для надёжного получения членов локальных групп
- System.DirectoryServices.AccountManagement для работы с Active Directory
- Parallel.ForEach для многопоточного сканирования
- ConcurrentBag для thread-safe сбора результатов
- Поиск по универсальному SID избегает проблем локализации
- NetAPI32 более надёжен чем WMI для доменных групп и вложенных членов
- Proper exception handling предотвращает сбои при недоступных компьютерах
- Защита от ошибок при разрешении доменных объектов
- Параллельное выполнение ускоряет сканирование больших сетей
- Ограничение MaxDegreeOfParallelism предотвращает перегрузку
- Cancellation token позволяет остановить длительные операции
MIT License
Создано для аудита безопасности корпоративных сред Windows.