|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Сравнение пользователей в AD с Excel файлом с выводом лога |
|
PowerShell - [решено] Сравнение пользователей в AD с Excel файлом с выводом лога
|
Старожил Сообщения: 303 |
Уважаемые коллеги прошу помощи!
Суть задачи: Автоматизация проверки пользователей в AD и вывод в последствии расхождения, для дальнейшего редактирования и актуализации. Что есть: - Файл Excel, который предоставляет отдел кадров (во вложении) Что хотелось бы получить: Скрипт, который анализировал файл Excel по полям Должность, ФИО и название отдела (Возможно стоит, модифицировать файл по другому) и сравнивал его с AD (OU с контейнером пользователей) с полями: ФИО, Должность, Отдел и если происходит расхождение по заданным критериям сравнения, выводил в excel (txt) файл (вариант представления на выбор), информацию по данному пользователю в формате: excel: ФИО Должность Отдел > AD: ФИО Должность Отдел (Для удобства, можно предложить свой вариант) Спасибо. з.ы. За потраченное время, отблагодарю пивасом, если заинтересует кого. Добавление: Файл Excel переделан и заменен. атрибуты в AD: CN - ФИО department - Отдел title - Должность |
|
Отправлено: 15:32, 22-06-2017 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Import-Excel в модуле - https://github.com/dfinke/ImportExcel
$el = Import-Excel "сот2.xlsx" $userNotFound = @() $badUser = $el | Where {$_.'Ф.И.О.'} | Foreach { $user = Get-ADuser -Filter "CN -eq '$($_.'Ф.И.О.')'" -Properties cn,department,title if($user) { if($user.title -ne $_."Должность" -or $user.department -ne $_."Отдел") { "Excel: {0} | {1} | {2} > AD: {3} | {4} | {5}" -f $_.'Ф.И.О.',$_."Должность",$_."Отдел",$user.CN,$user.department,$user.title } } else { $userNotFound += $_.'Ф.И.О.' } } $userNotFound > userNotFound.txt $badUser > badUser.txt ![]() И заменить Import-Excel на Import-Csv |
Последний раз редактировалось Kazun, 23-06-2017 в 11:16. Отправлено: 11:04, 23-06-2017 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать Уважаемый Kazun.
Произвел замену CSV согласно вашим указаниям, скрипт отработал, но не вывел ничего в двух файлах Возможно он не знает к чему ему надо обратиться и требуется указать само OU AD? |
Отправлено: 11:39, 23-06-2017 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать У файла должна быть кодировка UTF-8, у приклепленного другая и посмотреть, корректный вывод данных из $el в консоли:
$el = Import-CSV сот2.csv -Encoding Default PS > Import-Csv $f ��������� ����� �.�.�. --------- ----- ------ ��������� ������ ����� ����������� ������������ ����������� ���������� ������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� �������� ����� ����������� ������������ ����������� ���������� ��������� ����� ����������� ������������ ����������� ���������� PS > Import-Csv $f -Encoding Default Должность Отдел Ф.И.О. --------- ----- ------ Начальник отдела Отдел обеспечения деятельности руководства Учреждения Старший референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Референт Отдел обеспечения деятельности руководства Учреждения Корректор Отдел обеспечения деятельности руководства Учреждения |
Отправлено: 11:43, 23-06-2017 | #4 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать Понял. Спасибо. Отписал в пм по пару не понятным моментам.
|
|
Последний раз редактировалось Fantastish, 23-06-2017 в 12:03. Отправлено: 11:54, 23-06-2017 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Kazun, есть же и третий путь — обычная работа с Рабочей книгой посредством Automation.
|
Отправлено: 14:31, 23-06-2017 | #6 |
Старожил Сообщения: 303
|
Профиль | Отправить PM | Цитировать а можно поподробней?
|
Отправлено: 13:02, 29-06-2017 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Fantastish:
Создаёте COM-объект Excel, используете его методы и свойства. Object model (Excel VBA reference) |
|
Отправлено: 13:27, 29-06-2017 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Сравнение 2 групп AD | Johny_spb | Скриптовые языки администрирования Windows | 2 | 10-02-2017 14:41 | |
CMD/BAT - Сравнение содержимого 2х текстовых файлов, с выводом отчета | bionicmon | Скриптовые языки администрирования Windows | 3 | 23-11-2015 18:16 | |
2012 R2 - [решено] Создание пользователей в AD из списка word/excel | dimmigg | Windows Server 2012/2012 R2 | 4 | 14-07-2014 18:54 | |
Сравнение таблиц в Excel'e | xkspy | Хочу все знать | 1 | 04-01-2007 10:42 | |
восстановление excel-файла, затертого другим файлом с тем же именем | XPurple | Хочу все знать | 4 | 03-01-2006 13:47 |
|