Среда, 25 июля 2012 14:32

Ldifde

Оцените материал
(5 голосов)

Формат обмена данными LDAP (LDIF) — это предварительный веб-стандарт формата файлов, который можно использовать для выполнения пакетных операций над каталогами, соответствующими стандартам LDAP. Формат LDIF поддерживает экспорт и импорт данных, позволяя выполнять с Active Directory пакетные операции добавления, создания и изменения.

Общие параметры команды Ldifde
-i                          Включение режима импорта (по умолчанию включен экспорт)
-f filename            Имя входного или выходного файла
-s servername       Сервер для привязки
-c FromDN ToDN    Замена вхождений FromDN на ToDN
-v                         Включение режима подробной информации
-j                          Расположение файла журнала
-t                          Номер порта (по умолчанию = 389)
-?                          Справка
               
Параметры экспорта
-d RootDN           Корень поиска LDAP (по умолчанию — контекст именования)
-r Filter               Фильтр поиска LDAP (по умолчанию — «(objectClass=*)»)
-p SearchScope   Область поиска (Base/OneLevel/Subtree)
-l list                  Список атрибутов (разделитель — запятая), для которых выполняется
                            поиск LDAP
-o list                 Список пропускаемых атрибутов (разделитель — запятая)
-g                      Отключение страничного поиска
-m                     Включение логики SAM при экспорте
-n                      Не экспортировать двоичные значения
               
Импорт
-k      Продолжать импорт, пропуская ошибки «Нарушение ограничения» и «Объект
        уже существует»
               
Задание учетных данных
-a      Выполнить команду, используя указанные различающееся имя
        и пароль пользователя. Например: «cn=yourname,dc=yourcompany,dc-com
        password»   
-b      Выполнить команду, используя синтаксис «имя_пользователя домен пароль». По умолчанию команда
        выполняется с использованием учетных данных пользователя, который в настоящее время зарегистрирован в системе.   
               

Общий синтаксис имеет вид:
ldifde [-i] [-f имя_файла] [-s имя_сервера] [-c строка1 строка2] [-v] [-j путь] [-t номер_порта] [-d различающееся_имя_базы] [-r фильтр_LDAP] [-p область] [-l список_атрибутов_LDAP] [-o список_атрибутов_LDAP] [-g] [-m] [-n] [-k] [-a различающееся_имя_пользователя пароль] [-b имя_пользователя домен пароль] [-?]

Предлагаю работу Ldifde разобрать на примерах:
Запускаем командную строку «Пуск- Выполнить» вводим CMD нажимаем «Enter», вводим команду
 ldifde -f С:/exportOu.ldf -s сервер AD -d "dc=Export,dc=com" -p subtree -r "(objectCategory=organizationalUnit)" -l "cn,objectclass,ou"
   При выполнении этой команды все подразделения за исключением контроллеров домена будут экспортированы в файл ExportOU.ldf  на диске С. Меняем расширение у файла ExportOU.ldf   на txt, открываем с помощью блокнота файл - видим полученный результат.
   Значительно интересней, я думаю, будет информация полученная о пользователях какого либо подразделения или всего AD (экспорт из AD). Для этого выполним следующую команду: (этот пример выполняется для домена test.ru, подразделения Users)
ldifde -f  C:/Users.ldf  -d "ou=Users,dc=test ,dc=ru" -r "(&(objectCategory=person) (objectClass=User))" –l"cn,sn,userPrincipalName,givenName,objectclass,samAccountName,displayname,department"
напомню,  –l Список атрибутов (разделитель — запятая), для которых выполняется поиск LDAP
dn: уникальное имя
dc: доменное имя
ou: organizational unit
cn: common name
userPrincipalName: доменная учетная запись
givenName: поле Имя в AD
objectclass: класс в AD
В результате этой команды в корне диска С будет создан файл Users.ldf, что бы была возможность посмотреть содержимое этого файла, необходимо поменять расширение на csv. Открываем файл с помощью Excel, в данном примере результат выглядит вот так:

dn: CN=Ivan Ivanov,OU=Users,DC=test,DC=ru
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Ivan Ivanov
sn: Ivanov
displayName: Ivan Ivanov
sAMAccountName: ivanovi
userPrincipalName: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.



Если вы хотите учетные данные этого пользователя перенести в другой домен, для этого меняем поле dn: CN=Ivan Ivanov,OU=Users,DC=test,DC=ru и userPrincipalName: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра. для соответствующего домена, например если переносим пользователя в домен domen.com, то прописываем в этих полях CN=Ivan Ivanov,OU=Users,DC=domen,DC=com и и userPrincipalName: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.. Если таких пользователей не один, а несколько десятков или сотен, тогда лучше открыть файл в Excel и с помощью функции замены, поменять необходимые строки. Для этого выделяем первый столбец и нажимаем «Найти и выделить- Заменить » и прописываем, что на что необходимо заменить.

Для того чтобы импортировать в AD содержимое файла Users.ldf выполняем следующую команду
ldifde -i -f C:/Users.ldf –k

При модификации или удалении существующих объектов синтаксис команды LDIFDE не меняется; вместо этого изменяется содержимое файла LDF. Для изменения поля описания учетных записей пользователей создайте текстовый файл, именуемый Users.ldf,

dn: CN=Ivan Ivanov,OU=Users,DC=test,DC=ru
changetype: modify
cn: Ivan Ivanov
sn: Ivanov
displayName: Ivan Ivanov
sAMAccountName: ivanovivan
userPrincipalName: Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
Тем самым мы поменяем учетную запись с ivanovi на ivanovivan.
Для того, что бы удалить пользователя из AD, необходимо в файле прописать:
dn: CN=Ivan Ivanov,OU=Users,DC=test,DC=ru
changetype: delete
   По моему мнению, использовать утилиту Ldifde удобно при переносе большого количества пользователей из одного домена в другой, либо внести изменения в подразделении с большим количеством пользователей.

Я очень надеюсь, моя статья помогла Вам! Просьба поделиться ссылкой с друзьями:


Комментарии  

0 # sergey 29.06.2013 12:25
все разобрался

ldifde -f Exportuser.ldf -d "dc=contoso,dc= com" -p subtree -r "(&(objectCateg ory=person)(obj ectClass=User)) " -l "memberof,homeD irectory,homeDr ive,profilePath "
Ответить
0 # nick 02.07.2013 14:21
Добрый день sergey. Не мог ответить поскольку уезжал на море... но смотрю вы и без меня с легкостью решили проблемы ;-) Спасибо, что написали ответы решив возникшие проблемы.
Ответить
0 # sergey 28.06.2013 23:09
еще вопрос, а что надо вписать
если меня интересуют еще сведения из AD об локальных дисках подключенных к каждой учетной записи, как их можно экспортировать?

Так то они отсутствуют, а чтобы не прописывать к каждой учетной записи по новой, хотелось бы понять как это сделать
Ответить
+1 # sergey 28.06.2013 22:58
все разобрался ключ -U использовать (unicode)
Ответить
0 # Sergey 28.06.2013 22:49
Как решить проблему с переносом, если часть пользователей (имя и фамилия) указана на русском? Поменять один домен на другой не представляется так как, запись вида превращается, что то вроде такого:



dn:: Q0490J3QuNC60L7Qu9Cw0Lkg0JfQvtGC0L7QsixPVT1EZWFsZXJzLERDPWRlYWxlcixEQz1sb2NhbA==
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn:: 0J3QuNC60L7Qu9Cw0Lkg0JfQvtGC0L7Qsg==
sn:: 0JfQvtGC0L7Qsg==
givenName:: 0J3QuNC60L7Qu9Cw0Lk=
displayName:: 0J3QuNC60L7Qu9Cw0Lkg0JfQvtGC0L7Qsg==
sAMAccountName: nikki
userPrincipalName: nikki@admin.local

dn: CN=Logist,OU=Dealers,DC=admin,DC=local
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Logist
givenName: Logist
displayName: Logist
sAMAccountName: Logist
userPrincipalName: Logist@admin.local
Ответить

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