Версия 1.3 от root_xwiki на 2025/10/30 07:11

Последние авторы
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. Используйте с осторожностью и только при наличии соответствующих прав доступа.