Сделать powershell скрипт для экспорта данных из MS AD
Нужно сделать скрипт на powershell который будет запускаться с ПК пользователя, обращаться к контроллеру домена по реквизитам из конфигурационного файла, собирать информацию о пользователях, компьютерах и их IP адресах, группах безопасности и их составе, сохранять результаты в xlsx файл.
Важно: скрипт не должен использовать модуль RSAT-AD-PowerShell и иные дополнительные модули требующие установки в системе пользователя, за исключением необходимости наличия MS Office (для экспорта в xlsx файл).
Для определения IP адресов по именам ПК использовать nslookup и dns сервер указанный в конфиг файле.
Скрипт должен состоять из одного powershell файла.
Запуск скрипта
Скрипт при запуске должен уведомлять пользователя таким сообщением:
Скрипт экспорта данных из Active Directory
Сейчас будет выполнено обращение к контроллеру домена: mydomain.local
Будут собраны следующие данные: пользователи, компьютеры, группы, состав групп
Ограничения на тип компьютера: только серверы
Ограничения на юниты:
mydomain.local/servers/
mydomain.local/users/actual/
Будет произведен поиск IP адресов для компьютеров с использованием DNS сервера: 192.168.10.10
Результаты будут сохранены в файл: C:\myscripts\modomain.local_2020.11.13_13_40.xlsx
Запустить (y/n)?
Имя домена, перечень собираемых данных, ограничения берутся из конфиг файла. Место сохранения - в каталоге с скриптом.
После запуска отображается процесс работы скрипта: подключение к AD, сбор данных, определение IP адресов, сохранение результатов и т.п.
По результатам выполнения скрипта выводится сообщение об успешном экспорте данных, ссылка на файл результатов, предложение закрыть скрипт.
Если в процессе сбора информации появляются ошибки скрипт должен о них понятно сообщить (не коды ошибок а заготовленные фразы) и прекратить работу.
Конфигурация
Конфигурация скрипта хранится в xml или json конфиг файле (на решение разработчика) который лежит в каталоге с скриптом.
Настройки конфиг файла:
Имя домена - string
Собирать ли данные об IP адресах - bool да/нет
Имя DNS сервера - ip address
Перечень собираемых данных - array users, computers, groups
Собирать ли данные о составе групп - bool да/нет
Ограничения на тип компьютера - array computers, servers
Ограничивать ли поиск конкретными юнитами - bool да/нет
Список юнитов - array, или ограничения нет и идет сбор данных с всего AD или указаны юниты в которых собирать данные
User properties, PC properties - список собираемых параметров (name, phone, address и т.д.)
Сохранение файла
Сохранение в xlsx файл. В отдельные вкладки.
Пример файла который должен получаться в результате - в вложении.