Автогенерация powershell-скриптов

a2f5edec88094666b328f3691ef2c427.jpgВсе рано или поздно приходят к желанию переложить занудную и однообразную работу на «плечи» компьютера. Например, ко мне это чувство пришло, когда я начал внедрять Active Directory в организации на 100+ сотрудников. Добавлять и заполнять все поля для большого числа пользователей вручную — ужасно нудное и долгое занятие. Конечно, первым делом я обратился к powershell, но процесс написание скрипта как-то уж слишком затянулся и в конечном счете ничего путного не вышло. Мечты иметь красивый и аккуратный каталог пользователей так и остались мечтами. Пока я не загорелся идеей автоматизации создания powershell-скриптов.Миллионы администраторов по всему миру, так же, как и я, ловят одни и те же баги в тысячах одинаковых скриптов для одних и тех же стандартных задач. Просто удивительно, что до меня ни один из них не решился закрыть этот вопрос раз и навсегда, создав автогенератор poweshell-скриптов. Если мы можем разворачивать десяток серверов в день, то научить компьютер писать скрипт без ошибок — точно не проблема.Ближе к делуКороче говоря, я собрал такой автогенератор скрипта и он готов к бета-тестированию. Называется он d-lera (d-lera.com) и главная его функция — устранение стадии написания кода скрипта, самого долгого и утомительного процесса при использовании powershell. Вместо этого администратор заполняет достаточно простую форму — по этим данным готовый powershell-сценарий генерируется и сохраняется автоматически.Проект еще только-только вылупился, и сейчас умеет генерировать простой и удобный скрипт для создания пользователей в Active Directory. Признаюсь, от хабражителей в комментариях хочется услышать, что сейчас работает неккоректно и какие функции нужны «на полях» в первую очередь. Поехали?

RTFM.txt На простом примере, покажу как все работает. Предположим, у нас есть организация с незамысловатым названием «Котейкины дрова». В ней есть два отдела «Мохнатая пилорама» и «Усатая бухгалтерия», В первом отделе один номер телефона, а второй пусть распологается сразу в двух кабинетах, в каждом из которых свой телефон.Получается такая структура:

c42c21b7e213406d82bd6bbf15119410.PNG

Стоит обратить внимание. что данная структура не обязательно должна повторять структуру подразделений в Active Directory.

Открываем страницу http://d-lera.com/adusercreate, нажимаем «Создать организацию», вводим название. Создается корневое подразделение, в котором автоматически заполняется атрибут «Организация»:

5d42fde17f9a40b4a6454f5403dde8ce.PNGВ поле «Адрес в каталоге» вводим адрес корневого подразделения (Organisation Unit) в каталоге Active Directory, где мы храним пользователей. Адрес домена добавлять не надо. Настраиваем атрибуты, которые одинаковые для всей организации: адрес, адрес сайта, параметры учетной записи.cae507dddc0b4e7ca49db9b71ac64651.PNG9204f6a0438d42259080f429ec50d5d7.PNGПосле чего добавляем два отдела «Мохнатая пилорама» и «Усатая бухгалтерия». При создании подразделений копируются все настройки родителя, но некоторые атрибуты обновляются автоматически: 1a7b4d862b5641fe94585283e9ec4638.PNGЗаполним так же руководителей отделов (вводить надо логин учетной записи руководителя отдела без префикса домена) и теневые группы, а для «Мохнатой пилорамы» заполняем еще телефон и кабинет:

Теневые группы Иногда же необходимо, что бы учетные записи сотрудников всего отдела являлись членами какой-либо группы безопасности. При заполненном параметре «Теневая группа» после создания учетной записи сгенерированный сценарий будет автоматически добавлять её в указанную группу

059dfb07875a44f5b8be2fc78fbccf6d.PNG8358c982dc8144ff9d928409348be47f.PNGА теперь воспользуемся тем, что при создании скрипта структура подразделений не обязательно должна оответствовать структуре подразделений в каталоге Active Directory. В «усатой бухгалтерии» создаем два дочерних подразделения: «Усатая бухгалтерия: сметанная комната» и «Усатая бухгалтерия: комната с клубками ниток» и каждому из них заполняем свой телефон и кабинет: 84f0d989361f4e6cabe3ac5efa26e78e.PNGНе забываем, что при создании дочерних подразделений некоторые поля заполняются автоматически. Вручную удаляем добавленные уровни адреса, а для названия отдела выбираем «обновить все дочерние подразделения» в «Усатой бухгалтреии»: 3ae628dfaee44f1d9afd9aa928487775.PNGИ тут мы вдруг вспоминаем, что при создании учетной записи хотим вводить e-mail, а еще конечно же пароль. Поэтому в «Котейкины дрова» отмечаем чекбокс для ручного ввода должности и пароля и обновляем все дочерние подразделения (обновляются только непосредственные наследники, поэтому для «Усатой бухгалтерии» надо так же жать на кнопку обновления): 9dfcf70b51ed424cba90eae9cc05d2fb.PNG124a4376c54645ccb24f85dc76dbd233.PNGИ на последок: в «Котейкины дрова» и «Усатой бухгалтерии» снимем галочку «Резрешить создание пользователей в данном подразделении», что бы скрипт не предлагал там создавать пользователей: bdec79306fbf4f759f9d05ae2ff2a56e.PNGНикому не хочется раскрывать сразу все сведения о домене организации на первом попавшемся сайте в интернете, поэтому после сохранения скрипта его необходимо открыть любым текстовым редактором и поправить первые две строчки, введя название вашего домена Active Directory. Сохраняем, запускаем: 69195cf2b3414451b8f9d7b523263444.PNGacda894e69504ab4a96aea1aa631f5f9.PNG30e684af089e4b83bd6cff20071a217b.PNGПланы на ближайшее будущее Возможность сохранения конфигурации Подписывание скриптов. Сейчас они генерируются неподписанными. Как самостоятельно подписать можно прочитать, например, здесь Конструкторы атрибутов: что бы, например, логин автоматически составлялся по шаблону на основе имени и фамилии и переводился с русского в транслит Комбинированный ввод многозначных атрибутов: введенное значение + предустановленное значение (например ввод индивидуального внутреннего номера телефона + общий городской номер) Сценарии для обновления существующих пользователей, создания пользователей из файла Excel или .CSV Добавление кастомных атрибутов пользователя Active Directory Поддержка Exchange, SharePoint Изучение и добавление сценариев для различных других стандартных задач P.S. Приглашаю всех потестить и буду очень благодарен за любые пожелания / предложения / замечания. Писать можно на admin@d-lera.com, в личку, в комментариях и вообще где угодно — мы же в интернете все-таки

Т.к. сведения о каталоге Active Directory организации являются информацией достаточно интимного характера, то очень важно Ваше мнение:

© Habrahabr.ru