Сделать powershell скрипт для экспорта данных из MS AD

Николай5 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
16.11.2020

Нужно сделать скрипт на 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 файл. В отдельные вкладки. 

Пример файла который должен получаться в результате - в вложении.

Заявки фрилансеров