Исходный код вики Инструкция по использованию программы "Массовое обновление пользователей Active Directory"
Версия 1.3 от root_xwiki на 2025/10/30 07:11
Последние авторы
| author | version | line-number | content |
|---|---|---|---|
| 1 | |||
| 2 | |||
| 3 | ---- | ||
| 4 | |||
| 5 | = Инструкция по использованию программы "Массовое обновление пользователей Active Directory" | ||
| 6 | = | ||
| 7 | |||
| 8 | Вы правы! Вот дополнение к инструкции с разделом установки зависимостей: | ||
| 9 | |||
| 10 | ---- | ||
| 11 | |||
| 12 | == 0. Установка программы и зависимостей == | ||
| 13 | |||
| 14 | == Системные требования == | ||
| 15 | |||
| 16 | * **Операционная система:** Windows 10/11, Linux, macOS | ||
| 17 | * **Python:** версия 3.7 или выше | ||
| 18 | * **Доступ к сети:** подключение к серверу corp.tcax.ru | ||
| 19 | * **Права:** права администратора домена для полного функционала | ||
| 20 | |||
| 21 | == Шаг 1: Установка Python == | ||
| 22 | |||
| 23 | Если Python не установлен: | ||
| 24 | |||
| 25 | **Windows:** | ||
| 26 | |||
| 27 | 1. Скачайте установщик с [[https:~~/~~/www.python.org/downloads/>>url:https://www.python.org/downloads/]] | ||
| 28 | 1. Запустите установщик | ||
| 29 | 1. **Важно!** Поставьте галочку "Add Python to PATH" | ||
| 30 | 1. Нажмите "Install Now" | ||
| 31 | |||
| 32 | **Linux (Ubuntu/Debian):** | ||
| 33 | |||
| 34 | {{{ | ||
| 35 | }}} | ||
| 36 | |||
| 37 | bash | ||
| 38 | |||
| 39 | sudo apt update sudo apt install python3 python3-pip | ||
| 40 | |||
| 41 | **Linux (CentOS/RHEL):** | ||
| 42 | |||
| 43 | {{{ | ||
| 44 | }}} | ||
| 45 | |||
| 46 | |||
| 47 | bash | ||
| 48 | |||
| 49 | sudo yum install python3 python3-pip | ||
| 50 | |||
| 51 | == Шаг 2: Установка зависимостей | ||
| 52 | \\ == | ||
| 53 | |||
| 54 | Создайте файл requirements.txt со следующим содержимым: | ||
| 55 | |||
| 56 | {{{ | ||
| 57 | }}} | ||
| 58 | |||
| 59 | |||
| 60 | text | ||
| 61 | |||
| 62 | PyQt5==5.15.10 pandas==2.1.3 openpyxl==3.1.2 ldap3==2.9.1 | ||
| 63 | |||
| 64 | Установите зависимости одной командой: | ||
| 65 | |||
| 66 | **Windows:** | ||
| 67 | |||
| 68 | {{{ | ||
| 69 | }}} | ||
| 70 | |||
| 71 | text | ||
| 72 | |||
| 73 | pip install -r requirements.txt | ||
| 74 | |||
| 75 | **Linux/macOS:** | ||
| 76 | |||
| 77 | {{{ | ||
| 78 | }}} | ||
| 79 | |||
| 80 | bash | ||
| 81 | |||
| 82 | pip3 install -r requirements.txt | ||
| 83 | |||
| 84 | **Или установите пакеты по отдельности:** | ||
| 85 | |||
| 86 | {{{ | ||
| 87 | }}} | ||
| 88 | |||
| 89 | |||
| 90 | bash | ||
| 91 | |||
| 92 | pip install PyQt5 pip install pandas pip install openpyxl pip install ldap3 | ||
| 93 | |||
| 94 | == Описание зависимостей == | ||
| 95 | |||
| 96 | |=Библиотека|=Версия|=Назначение | ||
| 97 | |**PyQt5**|5.15.10|Графический интерфейс программы | ||
| 98 | |**pandas**|2.1.3|Работа с Excel файлами и таблицами данных | ||
| 99 | |**openpyxl**|3.1.2|Чтение и запись файлов Excel (.xlsx) | ||
| 100 | |**ldap3**|2.9.1|Подключение и работа с Active Directory | ||
| 101 | |||
| 102 | |||
| 103 | |||
| 104 | == Шаг 3: Проверка установки == | ||
| 105 | |||
| 106 | Запустите следующую команду для проверки: | ||
| 107 | |||
| 108 | {{{ | ||
| 109 | }}} | ||
| 110 | |||
| 111 | bash | ||
| 112 | |||
| 113 | python -c "import PyQt5; import pandas; import openpyxl; import ldap3; print('Все зависимости установлены успешно!')" | ||
| 114 | |||
| 115 | Если команда выполнилась без ошибок - всё готово к использованию! | ||
| 116 | |||
| 117 | == Шаг 4: Запуск программы == | ||
| 118 | |||
| 119 | **Windows:** | ||
| 120 | |||
| 121 | {{{ | ||
| 122 | }}} | ||
| 123 | |||
| 124 | text | ||
| 125 | |||
| 126 | python ad_bulk_update.py | ||
| 127 | |||
| 128 | **Linux/macOS:** | ||
| 129 | |||
| 130 | {{{ | ||
| 131 | }}} | ||
| 132 | |||
| 133 | bash | ||
| 134 | |||
| 135 | python3 ad_bulk_update.py | ||
| 136 | |||
| 137 | == Возможные проблемы при установке == | ||
| 138 | |||
| 139 | == Проблема 1: "pip не является внутренней или внешней командой" == | ||
| 140 | |||
| 141 | **Решение:** | ||
| 142 | |||
| 143 | {{{ | ||
| 144 | }}} | ||
| 145 | |||
| 146 | bash | ||
| 147 | |||
| 148 | python -m pip install -r requirements.txt | ||
| 149 | |||
| 150 | == Проблема 2: Ошибка при установке PyQt5 == | ||
| 151 | |||
| 152 | **Решение для Linux:** | ||
| 153 | |||
| 154 | {{{ | ||
| 155 | }}} | ||
| 156 | |||
| 157 | |||
| 158 | bash | ||
| 159 | |||
| 160 | sudo apt install python3-pyqt5 python3-pyqt5.qtwidgets | ||
| 161 | |||
| 162 | == Проблема 3: Ошибка доступа (Permission denied) == | ||
| 163 | |||
| 164 | **Решение:** | ||
| 165 | |||
| 166 | {{{ | ||
| 167 | }}} | ||
| 168 | |||
| 169 | |||
| 170 | bash | ||
| 171 | |||
| 172 | pip install ~-~-user -r requirements.txt | ||
| 173 | |||
| 174 | == Проблема 4: Конфликт версий == | ||
| 175 | |||
| 176 | **Решение:** Используйте виртуальное окружение: | ||
| 177 | |||
| 178 | **Windows:** | ||
| 179 | |||
| 180 | {{{ | ||
| 181 | }}} | ||
| 182 | |||
| 183 | |||
| 184 | text | ||
| 185 | |||
| 186 | python -m venv venv venv\Scripts\activate pip install -r requirements.txt | ||
| 187 | |||
| 188 | **Linux/macOS:** | ||
| 189 | |||
| 190 | {{{ | ||
| 191 | }}} | ||
| 192 | |||
| 193 | |||
| 194 | |||
| 195 | bash | ||
| 196 | |||
| 197 | python3 -m venv venv source venv/bin/activate pip install -r requirements.txt | ||
| 198 | |||
| 199 | == Структура файлов проекта == | ||
| 200 | |||
| 201 | После установки у вас должны быть следующие файлы: | ||
| 202 | |||
| 203 | {{{ | ||
| 204 | }}} | ||
| 205 | |||
| 206 | text | ||
| 207 | |||
| 208 | ad_bulk_update/ ├── ad_bulk_update.py # Основной файл программы ├── requirements.txt # Список зависимостей ├── ad_bulk_update_config.json # Настройки (создается автоматически) ├── ad_columns_config.json # Настройки столбцов (создается автоматически) └── README.md # Данная инструкция | ||
| 209 | |||
| 210 | == Создание исполняемого файла (опционально) == | ||
| 211 | |||
| 212 | Для создания .exe файла (Windows) без необходимости установки Python: | ||
| 213 | |||
| 214 | 1. Установите PyInstaller: | ||
| 215 | |||
| 216 | {{{ | ||
| 217 | }}} | ||
| 218 | |||
| 219 | |||
| 220 | bash | ||
| 221 | |||
| 222 | pip install pyinstaller | ||
| 223 | |||
| 224 | 1. Создайте исполняемый файл: | ||
| 225 | |||
| 226 | {{{ | ||
| 227 | }}} | ||
| 228 | |||
| 229 | bash | ||
| 230 | |||
| 231 | pyinstaller ~-~-onefile ~-~-windowed ~-~-name="AD Bulk Update" ad_bulk_update.py | ||
| 232 | |||
| 233 | 1. Готовый файл будет в папке dist/ | ||
| 234 | |||
| 235 | ---- | ||
| 236 | |||
| 237 | == Быстрый старт (для опытных пользователей) == | ||
| 238 | |||
| 239 | {{{ | ||
| 240 | }}} | ||
| 241 | |||
| 242 | bash | ||
| 243 | |||
| 244 | # Клонирование или создание проекта mkdir ad_bulk_update cd ad_bulk_update # Создание requirements.txt echo "PyQt5==5.15.10 pandas==2.1.3 openpyxl==3.1.2 ldap3==2.9.1" > requirements.txt # Установка зависимостей pip install -r requirements.txt # Копирование файла ad_bulk_update.py (все 3 части кода) # Запуск python ad_bulk_update.py | ||
| 245 | |||
| 246 | ---- | ||
| 247 | |||
| 248 | == Обновление зависимостей == | ||
| 249 | |||
| 250 | Для обновления всех библиотек до последних версий: | ||
| 251 | |||
| 252 | {{{ | ||
| 253 | }}} | ||
| 254 | |||
| 255 | bash | ||
| 256 | |||
| 257 | pip install ~-~-upgrade -r requirements.txt | ||
| 258 | |||
| 259 | ---- | ||
| 260 | |||
| 261 | **Примечание:** Рекомендуется использовать указанные версии библиотек для обеспечения стабильной работы программы. Более новые версии могут содержать изменения API, которые потребуют модификации кода. | ||
| 262 | |||
| 263 | == Параметры подключения к Active Directory == | ||
| 264 | |||
| 265 | **LDAP сервер:** corp.tcax.ru | ||
| 266 | **Пользователь:** tcax\it_zolotov | ||
| 267 | **Base DN:** OU=TCAX,DC=corp,DC=tcax,DC=ru | ||
| 268 | |||
| 269 | ---- | ||
| 270 | |||
| 271 | == 1. Первоначальная настройка == | ||
| 272 | |||
| 273 | == Шаг 1: Запуск программы == | ||
| 274 | |||
| 275 | 1. Запустите файл ad_bulk_update.py | ||
| 276 | 1. Откроется главное окно программы с 4 вкладками | ||
| 277 | |||
| 278 | == Шаг 2: Настройка подключения == | ||
| 279 | |||
| 280 | 1. Перейдите на вкладку **"⚙️ Настройки подключения"** | ||
| 281 | 1. ((( | ||
| 282 | Заполните параметры подключения: | ||
| 283 | |||
| 284 | * **LDAP сервер:** corp.tcax.ru | ||
| 285 | * **Пользователь:** tcax\it_zolotov | ||
| 286 | * **Пароль:** введите ваш пароль | ||
| 287 | * **Base DN:** OU=TCAX,DC=corp,DC=tcax,DC=ru | ||
| 288 | ))) | ||
| 289 | |||
| 290 | == Шаг 3: Проверка подключения == | ||
| 291 | |||
| 292 | 1. Нажмите кнопку **"Проверить подключение"** | ||
| 293 | 1. Дождитесь сообщения об успешном подключении | ||
| 294 | 1. Нажмите **"💾 Сохранить настройки"** для сохранения параметров | ||
| 295 | |||
| 296 | >**Примечание:** Пароль не сохраняется по соображениям безопасности и должен вводиться каждый раз при запуске программы. | ||
| 297 | |||
| 298 | ---- | ||
| 299 | |||
| 300 | == 2. Работа с пользователями AD (ручное редактирование) == | ||
| 301 | |||
| 302 | == Загрузка пользователей == | ||
| 303 | |||
| 304 | 1. Перейдите на вкладку **"👥 Пользователи AD"** | ||
| 305 | 1. ((( | ||
| 306 | При необходимости измените LDAP фильтр или используйте быстрые фильтры: | ||
| 307 | |||
| 308 | * **Все пользователи** - загрузить всех пользователей | ||
| 309 | * **Активные** - только активные учетные записи | ||
| 310 | * **Отключенные** - только заблокированные учетные записи | ||
| 311 | ))) | ||
| 312 | 1. Нажмите **"🔍 Загрузить пользователей из AD"** | ||
| 313 | 1. Дождитесь завершения загрузки | ||
| 314 | |||
| 315 | == Настройка отображаемых столбцов == | ||
| 316 | |||
| 317 | 1. Нажмите кнопку **"⚙️ Настроить столбцы"** | ||
| 318 | 1. Выберите атрибуты для отображения в таблице | ||
| 319 | 1. ((( | ||
| 320 | Используйте кнопки: | ||
| 321 | |||
| 322 | * **Выбрать все** - показать все доступные атрибуты | ||
| 323 | * **Снять все** - скрыть все атрибуты | ||
| 324 | * **По умолчанию** - стандартный набор (логин, имя, email, должность, отдел, телефон, табельный номер) | ||
| 325 | ))) | ||
| 326 | 1. Нажмите **OK** для применения | ||
| 327 | |||
| 328 | == Поиск пользователей == | ||
| 329 | |||
| 330 | * Используйте поле **"Быстрый поиск"** для фильтрации по любым атрибутам в таблице | ||
| 331 | * Поиск работает в реальном времени | ||
| 332 | |||
| 333 | == Действия с пользователями == | ||
| 334 | |||
| 335 | == Создание нового пользователя == | ||
| 336 | |||
| 337 | 1. Нажмите **"➕ Создать пользователя"** | ||
| 338 | 1. ((( | ||
| 339 | Заполните обязательные поля (помечены *): | ||
| 340 | |||
| 341 | * Имя | ||
| 342 | * Фамилия | ||
| 343 | * Логин (только латиница) | ||
| 344 | * Пароль (минимум 8 символов) | ||
| 345 | * OU (путь создания) | ||
| 346 | ))) | ||
| 347 | 1. При необходимости используйте кнопку **"Сгенерировать пароль"** | ||
| 348 | 1. Заполните дополнительные поля (email, должность, отдел и т.д.) | ||
| 349 | 1. ((( | ||
| 350 | Настройте параметры учетной записи: | ||
| 351 | |||
| 352 | * ✓ Включить учетную запись после создания | ||
| 353 | * ✓ Пароль не истекает | ||
| 354 | * ✓ Требовать смену пароля при входе | ||
| 355 | ))) | ||
| 356 | 1. Нажмите **OK** | ||
| 357 | |||
| 358 | == Редактирование пользователя == | ||
| 359 | |||
| 360 | 1. Выберите пользователя в таблице (один клик) | ||
| 361 | 1. Дважды кликните по строке **ИЛИ** нажмите кнопку **"✏️ Редактировать"** | ||
| 362 | 1. В открывшемся окне измените нужные атрибуты | ||
| 363 | 1. Счетчик покажет количество изменений | ||
| 364 | 1. Нажмите **Save** для сохранения | ||
| 365 | |||
| 366 | == Активация пользователей == | ||
| 367 | |||
| 368 | 1. Выберите одного или нескольких пользователей (удерживайте Ctrl для множественного выбора) | ||
| 369 | 1. Нажмите **"✅ Активировать"** | ||
| 370 | 1. Подтвердите действие | ||
| 371 | 1. Дождитесь завершения операции | ||
| 372 | |||
| 373 | == Блокировка пользователей == | ||
| 374 | |||
| 375 | 1. Выберите одного или нескольких пользователей | ||
| 376 | 1. Нажмите **"🚫 Заблокировать"** | ||
| 377 | 1. Подтвердите действие | ||
| 378 | 1. Дождитесь завершения операции | ||
| 379 | |||
| 380 | == Экспорт пользователей == | ||
| 381 | |||
| 382 | 1. Нажмите **"📊 Экспорт"** | ||
| 383 | 1. Выберите место сохранения файла | ||
| 384 | 1. Все загруженные пользователи будут экспортированы в Excel со всеми атрибутами | ||
| 385 | |||
| 386 | ---- | ||
| 387 | |||
| 388 | == 3. Массовая загрузка из Excel == | ||
| 389 | |||
| 390 | == Шаг 1: Подготовка Excel файла == | ||
| 391 | |||
| 392 | Создайте Excel файл со следующей структурой: | ||
| 393 | |||
| 394 | * **Первая строка** - названия столбцов | ||
| 395 | * **Один столбец** должен содержать уникальный идентификатор (логин, email, табельный номер) | ||
| 396 | * **Остальные столбцы** - данные для обновления | ||
| 397 | |||
| 398 | **Пример:** | ||
| 399 | |||
| 400 | |=Логин|=Имя|=Фамилия|=Email|=Должность|=Отдел|=Телефон | ||
| 401 | |ivanov|Иван|Иванов|[[ivanov@tcax.ru>>mailto:ivanov@tcax.ru]]|Инженер|IT-отдел|+7 (123) 456-78-90 | ||
| 402 | |||
| 403 | |||
| 404 | |||
| 405 | |||
| 406 | |||
| 407 | |||
| 408 | == Шаг 2: Загрузка файла == | ||
| 409 | |||
| 410 | 1. Перейдите на вкладку **"📊 Массовая загрузка из Excel"** | ||
| 411 | 1. В разделе **"Шаг 1"** нажмите **"📂 Выбрать Excel файл"** | ||
| 412 | 1. Выберите подготовленный файл | ||
| 413 | 1. Проверьте превью данных (первые 10 строк) | ||
| 414 | |||
| 415 | == Шаг 3: Настройка сопоставления == | ||
| 416 | |||
| 417 | 1. ((( | ||
| 418 | В разделе **"Шаг 2"** выберите: | ||
| 419 | |||
| 420 | * **Столбец идентификатора** - столбец из Excel с уникальным значением | ||
| 421 | * **Атрибут AD** - по какому атрибуту искать пользователей (обычно sAMAccountName) | ||
| 422 | ))) | ||
| 423 | 1. ((( | ||
| 424 | Настройте сопоставление полей: | ||
| 425 | |||
| 426 | * Нажмите **"🔮 Автосопоставление"** для автоматического сопоставления | ||
| 427 | * ((( | ||
| 428 | ИЛИ вручную для каждой строки: | ||
| 429 | |||
| 430 | * Выберите столбец Excel | ||
| 431 | * Выберите соответствующий атрибут AD | ||
| 432 | * Поставьте галочку ✓ для использования | ||
| 433 | ))) | ||
| 434 | ))) | ||
| 435 | 1. ((( | ||
| 436 | Используйте кнопки управления: | ||
| 437 | |||
| 438 | * **➕ Добавить поле** - добавить новое сопоставление | ||
| 439 | * **➖ Удалить выбранное** - удалить строку сопоставления | ||
| 440 | * **🗑️ Очистить все** - снять все галочки | ||
| 441 | ))) | ||
| 442 | |||
| 443 | == Шаг 4: Проверка == | ||
| 444 | |||
| 445 | 1. Нажмите **"✓ Проверить и подготовить к загрузке"** | ||
| 446 | 1. Проверьте информацию о сопоставлении | ||
| 447 | 1. Если все корректно - переходите к следующему шагу | ||
| 448 | |||
| 449 | ---- | ||
| 450 | |||
| 451 | == 4. Выполнение массового обновления == | ||
| 452 | |||
| 453 | == Запуск обновления == | ||
| 454 | |||
| 455 | 1. Перейдите на вкладку **"▶️ Выполнение обновления"** | ||
| 456 | 1. Проверьте информацию о задаче | ||
| 457 | 1. Нажмите **"▶ Выполнить обновление"** | ||
| 458 | 1. **ВНИМАНИЕ!** Подтвердите действие - данные в AD будут изменены! | ||
| 459 | |||
| 460 | == Мониторинг процесса == | ||
| 461 | |||
| 462 | * Прогресс-бар покажет текущий статус выполнения | ||
| 463 | * ((( | ||
| 464 | В окне лога отображается информация о каждом пользователе: | ||
| 465 | |||
| 466 | * ✓ Успешно обновлен | ||
| 467 | * ✗ Ошибка обновления | ||
| 468 | * ⚠ Не найден в AD | ||
| 469 | * ⊘ Пропущен | ||
| 470 | ))) | ||
| 471 | |||
| 472 | == Экспорт результатов == | ||
| 473 | |||
| 474 | 1. После завершения обновления нажмите **"📊 Экспортировать лог в Excel"** | ||
| 475 | 1. Выберите место сохранения | ||
| 476 | 1. ((( | ||
| 477 | В файле будут содержаться: | ||
| 478 | |||
| 479 | * Идентификатор пользователя | ||
| 480 | * Статус обновления | ||
| 481 | * Описание ошибок (если были) | ||
| 482 | * Список измененных полей | ||
| 483 | ))) | ||
| 484 | |||
| 485 | ---- | ||
| 486 | |||
| 487 | == 5. Часто используемые атрибуты AD == | ||
| 488 | |||
| 489 | == Основная информация == | ||
| 490 | |||
| 491 | * givenName - Имя | ||
| 492 | * sn - Фамилия | ||
| 493 | * displayName - Отображаемое имя | ||
| 494 | * cn - Полное имя | ||
| 495 | * description - Описание | ||
| 496 | |||
| 497 | == Контактная информация == | ||
| 498 | |||
| 499 | * mail - Email | ||
| 500 | * telephoneNumber - Телефон | ||
| 501 | * mobile - Мобильный телефон | ||
| 502 | * ipPhone - IP телефон | ||
| 503 | |||
| 504 | == Адрес == | ||
| 505 | |||
| 506 | * streetAddress - Улица | ||
| 507 | * l - Город | ||
| 508 | * st - Область/Регион | ||
| 509 | * postalCode - Почтовый индекс | ||
| 510 | |||
| 511 | == Организационная информация == | ||
| 512 | |||
| 513 | * title - Должность | ||
| 514 | * department - Отдел | ||
| 515 | * company - Компания | ||
| 516 | * employeeID - Табельный номер | ||
| 517 | * physicalDeliveryOfficeName - Офис | ||
| 518 | |||
| 519 | == Дополнительные атрибуты == | ||
| 520 | |||
| 521 | * extensionAttribute1-15 - Расширенные атрибуты (для пользовательских данных) | ||
| 522 | |||
| 523 | ---- | ||
| 524 | |||
| 525 | == 6. Советы и рекомендации == | ||
| 526 | |||
| 527 | == Безопасность == | ||
| 528 | |||
| 529 | 1. Всегда делайте **резервную копию** перед массовыми изменениями | ||
| 530 | 1. Сначала протестируйте на **небольшой группе** пользователей | ||
| 531 | 1. Используйте **экспорт лога** для документирования изменений | ||
| 532 | 1. Не сохраняйте пароль в настройках | ||
| 533 | |||
| 534 | == Производительность == | ||
| 535 | |||
| 536 | 1. При загрузке большого количества пользователей используйте **фильтры** | ||
| 537 | 1. Настройте **видимые столбцы** для ускорения отображения | ||
| 538 | 1. Используйте **быстрый поиск** вместо прокрутки таблицы | ||
| 539 | |||
| 540 | == Устранение проблем == | ||
| 541 | |||
| 542 | 1. ((( | ||
| 543 | Если пользователь не найден - проверьте: | ||
| 544 | |||
| 545 | * Правильность идентификатора | ||
| 546 | * Корректность Base DN | ||
| 547 | * Наличие пользователя в указанном OU | ||
| 548 | ))) | ||
| 549 | 1. ((( | ||
| 550 | При ошибках подключения: | ||
| 551 | |||
| 552 | * Проверьте доступность сервера corp.tcax.ru | ||
| 553 | * Убедитесь в правильности учетных данных | ||
| 554 | * Проверьте сетевое подключение | ||
| 555 | ))) | ||
| 556 | 1. ((( | ||
| 557 | При ошибках обновления: | ||
| 558 | |||
| 559 | * Проверьте права доступа учетной записи | ||
| 560 | * Убедитесь в корректности формата данных | ||
| 561 | * Изучите детали ошибки в экспортированном логе | ||
| 562 | ))) | ||
| 563 | |||
| 564 | ---- | ||
| 565 | |||
| 566 | == 7. Горячие клавиши и быстрые действия == | ||
| 567 | |||
| 568 | * **Двойной клик** по пользователю - открыть для редактирования | ||
| 569 | * **Ctrl + клик** - множественный выбор пользователей | ||
| 570 | * **Shift + клик** - выбор диапазона пользователей | ||
| 571 | * **Поле быстрого поиска** - фильтрация в реальном времени | ||
| 572 | |||
| 573 | ---- | ||
| 574 | |||
| 575 | == Контакты технической поддержки == | ||
| 576 | |||
| 577 | При возникновении проблем обращайтесь к администратору IT-отдела. | ||
| 578 | |||
| 579 | **Программа разработана для:** TCAX | ||
| 580 | **Версия:** 2.0 | ||
| 581 | **Дата:** Октябрь 2025 | ||
| 582 | |||
| 583 | ---- | ||
| 584 | |||
| 585 | **ВНИМАНИЕ!** Программа вносит изменения в Active Directory. Используйте с осторожностью и только при наличии соответствующих прав доступа. |