![](https://habrastorage.org/files/a2f/5ed/ec8/a2f5edec88094666b328f3691ef2c427.jpg)
Миллионы администраторов по всему миру, так же, как и я, ловят одни и те же баги в тысячах одинаковых скриптов для одних и тех же стандартных задач. Просто удивительно, что до меня ни один из них не решился закрыть этот вопрос раз и навсегда, создав автогенератор poweshell-скриптов. Если мы можем разворачивать десяток серверов в день, то научить компьютер писать скрипт без ошибок — точно не проблема.
Ближе к делу
Короче говоря, я собрал такой автогенератор скрипта и он готов к бета-тестированию. Называется он d-lera (d-lera.com) и главная его функция — устранение стадии написания кода скрипта, самого долгого и утомительного процесса при использовании powershell. Вместо этого администратор заполняет достаточно простую форму — по этим данным готовый powershell-сценарий генерируется и сохраняется автоматически.
Проект еще только-только вылупился, и сейчас умеет генерировать простой и удобный скрипт для создания пользователей в Active Directory. Признаюсь, от хабражителей в комментариях хочется услышать, что сейчас работает некорректно и какие функции нужны «на полях» в первую очередь. Поехали?
RTFM.txt
На простом примере, покажу как все работает. Предположим, у нас есть организация с незамысловатым названием «Котейкины дрова». В ней есть два отдела «Мохнатая пилорама» и «Усатая бухгалтерия», В первом отделе один номер телефона, а второй пусть распологается сразу в двух кабинетах, в каждом из которых свой телефон.
Получается такая структура:
Стоит обратить внимание. что данная структура не обязательно должна повторять структуру подразделений в Active Directory.
Открываем страницу http://d-lera.com/adusercreate, нажимаем «Создать организацию», вводим название. Создается корневое подразделение, в котором автоматически заполняется атрибут «Организация»:
В поле «Адрес в каталоге» вводим адрес корневого подразделения (Organisation Unit) в каталоге Active Directory, где мы храним пользователей. Адрес домена добавлять не надо. Настраиваем атрибуты, которые одинаковые для всей организации: адрес, адрес сайта, параметры учетной записи.
После чего добавляем два отдела «Мохнатая пилорама» и «Усатая бухгалтерия». При создании подразделений копируются все настройки родителя, но некоторые атрибуты обновляются автоматически:
Заполним так же руководителей отделов (вводить надо логин учетной записи руководителя отдела без префикса домена) и теневые группы, а для «Мохнатой пилорамы» заполняем еще телефон и кабинет:
Теневые группы
Иногда же необходимо, что бы учетные записи сотрудников всего отдела являлись членами какой-либо группы безопасности. При заполненном параметре «Теневая группа» после создания учетной записи сгенерированный сценарий будет автоматически добавлять её в указанную группу
А теперь воспользуемся тем, что при создании скрипта структура подразделений не обязательно должна оответствовать структуре подразделений в каталоге Active Directory. В «усатой бухгалтерии» создаем два дочерних подразделения: «Усатая бухгалтерия: сметанная комната» и «Усатая бухгалтерия: комната с клубками ниток» и каждому из них заполняем свой телефон и кабинет:
Не забываем, что при создании дочерних подразделений некоторые поля заполняются автоматически. Вручную удаляем добавленные уровни адреса, а для названия отдела выбираем «обновить все дочерние подразделения» в «Усатой бухгалтреии»:
И тут мы вдруг вспоминаем, что при создании учетной записи хотим вводить e-mail, а еще конечно же пароль. Поэтому в «Котейкины дрова» отмечаем чекбокс для ручного ввода должности и пароля и обновляем все дочерние подразделения (обновляются только непосредственные наследники, поэтому для «Усатой бухгалтерии» надо так же жать на кнопку обновления):
И на последок: в «Котейкины дрова» и «Усатой бухгалтерии» снимем галочку «Резрешить создание пользователей в данном подразделении», что бы скрипт не предлагал там создавать пользователей:
Никому не хочется раскрывать сразу все сведения о домене организации на первом попавшемся сайте в интернете, поэтому после сохранения скрипта его необходимо открыть любым текстовым редактором и поправить первые две строчки, введя название вашего домена Active Directory. Сохраняем, запускаем:
Планы на ближайшее будущее
- Возможность сохранения конфигурации
- Подписывание скриптов. Сейчас они генерируются неподписанными. Как самостоятельно подписать можно прочитать, например, здесь
- Конструкторы атрибутов: что бы, например, логин автоматически составлялся по шаблону на основе имени и фамилии и переводился с русского в транслит
- Комбинированный ввод многозначных атрибутов: введенное значение + предустановленное значение (например ввод индивидуального внутреннего номера телефона + общий городской номер)
- Сценарии для обновления существующих пользователей, создания пользователей из файла Excel или .CSV
- Добавление кастомных атрибутов пользователя Active Directory
- Поддержка Exchange, SharePoint
- Изучение и добавление сценариев для различных других стандартных задач
P.S. Приглашаю всех потестить и буду очень благодарен за любые пожелания / предложения / замечания. Писать можно на admin@d-lera.com, в личку, в комментариях и вообще где угодно — мы же в интернете все-таки
Т.к. сведения о каталоге Active Directory организации являются информацией достаточно интимного характера, то очень важно Ваше мнение:
Only registered users can participate in poll. Log in, please.
Как бы Вы хотели видеть сохранение конфигурации подразделений?
5.29% Согласен хранить в аккаунте на проекте10
59.26% Хочу локально, в файл112
35.45% Согласен на оба варианта67
189 users voted. 98 users abstained.