При перемещаемых профилях базу нужно писать в профиль на той машине, где у
пользователя открыт сеанс, иначе правку затрёт при выходе. Раньше, чтобы
узнать, где человек сидит, приходилось отдельно лезть в Dameware.
Что добавлено:
- ad_sessions.py — обнаружение сеансов: список компьютеров из AD через ADSI
(RSAT не нужен), отсев выключенных по порту 445, опрос WTS, разрешение
реальной папки профиля через SID и реестр ProfileList, с фоллбэком на
перебор имён папок, если служба RemoteRegistry отключена.
- Панель «Сеансы пользователя в домене»: поиск по имени, выбор сеансов
галочками и отдельная кнопка добавления баз в отмеченные сеансы. Старый
режим записи по профилям остался для пользователей без активных сеансов.
- Отключённые сеансы учитываются наравне с активными: они тоже держат
профиль загруженным, и запись в серверную копию так же затрётся.
- Фильтр по паре домен + пользователь, чтобы локальные учётки с тем же
именем не смешивались с доменными.
- Enter в полях ввода запускает соответствующее действие.
Скорость (на парке в 316 машин опрос занимал около 90 секунд):
- WTS вызывается через ctypes, а не pywin32: pywin32 не отпускает GIL на
время нативного вызова, из-за чего опрос шёл строго последовательно и
никакие потоки не помогали. На живом домене 21,4 с -> 1,3 с.
- Проверка порта и опрос WTS слиты в один проход, потоков 256.
- Машины, зависшие на RPC, не ждём дольше 4 секунд после того, как очередь
разобрана: прервать вызов нельзя, но можно перестать его ждать.
- Снимок домена кэшируется на 2 минуты, поэтому поиск следующего
пользователя мгновенный; для принудительного обновления есть кнопка
«Пересканировать».
- COM инициализируется явно в каждом потоке: без этого повторное
сканирование из нового потока падало с MK_E_SYNTAX.
Безопасность записи: перед добавлением сеансы перепроверяются на живость, а
если сеансов не нашлось и при этом часть машин не ответила — выводится
предупреждение, чтобы базу не записали в перемещаемый профиль вслепую.
Co-Authored-By: Claude <noreply@anthropic.com>
- Панель «Подключённые базы»: клик по пользователю показывает его базы,
удаление отмеченных с подтверждением
- Поиск по пользователям и базам (галочки сохраняются при фильтрации)
- Опциональное дублирование add/delete в ZIP-профиль (автопоиск папки <user>.*)
- Устойчивое чтение ibases.v8i (UTF-8 BOM/без/cp1251)
- Интерфейс переведён на русский, окно резиновое
- Фикс: сброс прокрутки списка наверх при поиске
- Новая иконка download.ico, spec теперь версионируется
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>