Автогенерация powershell-скриптов
Все рано или поздно приходят к желанию переложить занудную и однообразную работу на «плечи» компьютера. Например, ко мне это чувство пришло, когда я начал внедрять Active Directory в организации на 100+ сотрудников. Добавлять и заполнять все поля для большого числа пользователей вручную — ужасно нудное и долгое занятие. Конечно, первым делом я обратился к powershell, но процесс написание скрипта как-то уж слишком затянулся и в конечном счете ничего путного не вышло. Мечты иметь красивый и аккуратный каталог пользователей так и остались мечтами. Пока я не загорелся идеей автоматизации создания powershell-скриптов.Миллионы администраторов по всему миру, так же, как и я, ловят одни и те же баги в тысячах одинаковых скриптов для одних и тех же стандартных задач. Просто удивительно, что до меня ни один из них не решился закрыть этот вопрос раз и навсегда, создав автогенератор 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 организации являются информацией достаточно интимного характера, то очень важно Ваше мнение: