Экспорт-импорт пользователей Active Directory
Возникла необходимость перенести всех пользователей в новый домен. Microsoft предлагает две утилиты командной строки: ldifde.exe и csvde.exe. Обе они делают экспорт-импорт в/из структурированный текстовый файл. В первом случае .ldf, во втором — .csv. Как мне показалось разницы никакой, за исключением того, что в .ldf каждый атрибут на новой строке, что удобнее читается и правится, если возникла такая необходимость.
С помощью утилиты также можно перенести «Подразделения» (Organization Unit).
При использовании этих утилит не экспортируются атрибуты, связанные с безопасностью — имена групп, которым принадлежат пользователи и пользовательские пароли. Пользователям присваиваются пустые пароли и атрибут «Требовать смену пароля при следующем входе в систему».
Здесь я вкратце опишу только перенос пользователей, в конце заметки я даю ссылку на статью на русском языке на официальном сайте MS.
Итак экспорт.
На контроллере домена источнике выполняем:
ldifde -u -f C:Exportuser.ldf -s dc2 -d "dc=mydomain,dc=local" -p subtree -r "(&(objectCategory=person)(objectClass=User)(givenname=*))" -l "cn,sn,description,givenName,initials,displayName,name,objectclass,profilePath,homeDirectory,homeDrive,samAccountName,mail"
затем с помощью текстового редактора автоматически меняем в файле Exportuser.ldf имя домена у всех пользователей:
DC=mydomain,DC=local
на
DC=new,DC=mydomain,DC=ru
и делаем импорт:
ldifde -i -f C:Exportuser.ldf -s dc02
При экспорте, если есть проблемы с русскими атрибутами пользователей, надо добавить ключ -u, т.е. экспорт в юникод. Ключ -f указывает на файл обмена.
У меня возник один баг — несколько пользователей не выгружались при экспорте, что я только не делал. Если кто подскажет — буду премного благодарен!
Оригинальная статья