![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Скрипт анализа и замены ФИО в AD (или сравнение списков) |
|
PowerShell - [решено] Скрипт анализа и замены ФИО в AD (или сравнение списков)
|
Старожил Сообщения: 498 |
Доброго Вам времени, уважаемые форумчане. Снова понадобилась Ваша помощь. Рассказываю суть:
До текущего времени и в данный момент все пользователи в AD (исторически так сложилось, я пришёл - так было, как говорится) заводятся, к примеру, так: ivanov_ii - Иван И. Иванов; petrov_pp - Пётр П. Петров... и так далее. Думаю логика ясна. В прошлом году начали большие внедрения (Exchange, документооборот, Lync) и всё бы ничего, но: в документообороте в некоторых документах ФИО обрезается таким образом - Иван И.И., в Outlook поиск контактов по глобальному списку происходит только по имени (имя то первое). Пришли к выводу, что будет проще заменить текущие "Имя О. Фамилия" на полные " Фамилия Имя Отчество" - будет гораздо удобнее и информативнее, как для документооборота с продуктами Microsoft, так и для пользования в будущем. Так вот. Есть списки пользователей с полными ФИО в таком виде: полные ФИО, отдел, должность (выслал отдел кадров) плюс есть выгрузка пользователей из AD в виде CSV файла со столбцами: sAMAccountName, cn, company, department, title ivanov_ii, Иван И. Иванов, ООО "Рога и копыта", отдел умиротворения, начальник Каким образом можно сравнить фамилии из двух списков, заменить ФИО из второго варианта на полные ФИО, и загрузить данную информацию в AD? В принципе - как загрузить информацию я знаю. Важен именно процесс (скрипт) сравнения двух файлов. Я конечно понимаю, что можно и вручную, но 1200 пользователей вручную - не наш метод ![]() |
|
------- Отправлено: 07:56, 10-06-2015 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Crush45, для того, кто будет делать, не помешают реальные образцы файлов:
Цитата Crush45:
Цитата Crush45:
|
||
Отправлено: 08:33, 10-06-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 498
|
Профиль | Отправить PM | Цитировать Iska, сделаем. Чуть позже выложу.
|
------- Отправлено: 15:17, 10-06-2015 | #3 |
Старожил Сообщения: 498
|
Профиль | Отправить PM | Цитировать Добавил небольшие два файлика для сравнения.
Как я это вижу: сравниваем два файла - Берём фамилию (и имя? есть однофамильцы) из списка AD - ищем совпадение фамилии в списке от ОК - если совпадает - Берём логин sAMAccountName, берём полное ФИО и записываем через точку с запятой в новый файл merge.csv В итоге - получаем готовый csv файл для загрузки данных в AD по sAMAccountName. sAMAccountName - уникален. |
------- Отправлено: 12:05, 23-06-2015 | #4 |
Старожил Сообщения: 498
|
Профиль | Отправить PM | Цитировать В общем удалось всё решить используя преобразования в Excel - привёл оба списка к виду из двух столбцов - от ОК: ФамилияИмя + Отчество, из AD: sAMAccountName + cn (впоследствии пришлось заменить поле на DisplayName - так как я не нашёл прямого способа изменения атрибута cn). Далее используя функции ВПР - заполнил отчества в файле для AD. Далее используя надстройку PowerQuery для Excel объединил столбцы ФамилияИмя+Отчество, в итоге на выходе получил необходимый файл с sAMAccountName,DisplayName и необходимыми доп.данными. Сохранил таблицу в csv с кодировкой Unicode (UTF8) для PowerShell и загрузил в AD следующим скриптом:
$file='C:\test.csv' Import-CSV -Path $file | ForEach-Object { Set-ADUser -Identity $_.sAMAccountName -DisplayName $_.DisplayName } Import-CSV -Path $file | ForEach-Object { Get-ADUser -Identity $_.sAMAccountName -Properties DisplayName,cn | Rename-ADObject -NewName $_.DisplayName } Всем удачи. |
|
------- Отправлено: 17:50, 30-06-2015 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - скрипт для замены текста в файле | batyaPS | Скриптовые языки администрирования Windows | 19 | 10-01-2015 06:27 | |
CMD/BAT - Скрипт замены системного файла | SHASHLIK | Скриптовые языки администрирования Windows | 1 | 18-12-2014 16:26 | |
Любой язык - Скрипт для замены | Kira1 | Скриптовые языки администрирования Windows | 2 | 15-07-2013 18:39 | |
CMD/BAT - Скрипт замены файла | ruba4o | Программирование и базы данных | 0 | 07-02-2013 21:14 | |
[решено] Сравнение ячеек в БД (SQL или access) | sidorova | Программирование и базы данных | 12 | 27-08-2006 13:21 |
|