Ldifde — перенос структуры OU между доменами AD

Иногда при миграциях бывает необходимо воспроизвести структуру организационных подразделений Active Directory из исходного домена в целевом. Самый быстрый способ сделать это – экспортировать структуру OU с помощью утилиты ldifde из исходного домена в ldf файл, отредактировать полученный файл с помощью текстового редактора и импортировать полученный файл в целевой домен.

1. Экспорт данных с помощью ldifde

Имеем два домена в разных лесах AD: source.lab и target.lab. В домене source.lab у нас имеется развитая структура OU, которую нам хочется перенести в домен target.lab. Заходим на контроллер домена в source.lab и выполняем команду:

ldifde export example

Пример выполнения экспорта

Данная команда выполнит экспорт объектов категории OrganizationalUnit рекурсивно начиная с OU “NameOfOU” в файл OUs.ldf.

Параметры, котрые были использованы:
-f Имя входного или выходного файла
-s Сервер
-d Корень поиска LDAP
-p Область поиска — может быть Base/OneLevel/Subtree. В нашем случае мы экспортируем всё дерево целиком от указанной OU в параметре -d
-r Фильтр поиска LDAP. В нашем случае мы экспортируем только организационные подразделения, поэтому указываем фильтр
«(objectcategory=organizationalUnit)»
-l Список атрибутов для которых выполняется поиск LDAP
-u Использовать Юникод. Важно, если используются русские имена в названиях OU

Редактируем полученный файл в редакторе, который позволяет выполнить замену для всех вхождений. Я использовал Notepad ++. Меняем OU=NameOfOU,DC=source,DC=lab на OU=NewOUname,DC=target,DC=lab

2. Импорт данных в целевой домен

Импортируем полученный ldf файл в целевой домен. На этом шаге есть небольшая хитрость. Поскольку файл ldf утилита ldifde читает последовательно, то в момент импорта утилита не сможет создать дочернее OU для несуществующего пока ещё родительского OU, информация о котором находится в конце файла. Нужно использовать опцию k, которая позволяет проскакивать OU, которые лежат ниже в иерархии и пока не могут быть созданы. Команду необходимо выполнить несколько раз, пока не импортируются вся иерархия OU. Команду выполняем на контроллере целевого домена.

На этом всё. Структура OU перенесена. Естественно, что эта процедура не переносит ACL, которые могли быть настроены в исходном домене.

Добавить комментарий