CSVDE и LDIFDE — экспорт информации из снимков (Snapshots) Active Directory в Windows Server 2008
Как уже было сказано в предыдущих статьях этой серии, Windows Server 2008 позволяет администраторам создавать снимки базы AD. Используя их, вы сможете просматривать информацию в снимках и использовать ее для восстановления или для диагностики без необходимости перегружать контроллер домена в режиме Directory Services Restore Mode. Эти снимки могут быть сохранены на локальный диск контроллера домена или скопированы любой другой носитель. Более подробно как это делается, вы можете прочитать в моих предыдущих статьях Снимки Active Directory (Active Directory Snapshots) в Windows Server 2008 , Автоматическое создание снимков (snapshots) Active Directory , Экспорт информации из снимка (snapshot) Active Directory в Windows Server 2008 .
В общих чертах процесс создания и использования снимка AD выглядит следующим образом:
- Любым способом, в ручную или запланированной задачей используя утилиту NTDSUTIL создайте снимок раздела, который содержит базу AD.
- Используя туже утилиту смонтируйте полученный шаблон.
- Запустите утилиту DSAMAIN чтобы опубликовать ваш снимок на LDAP сервере.
Предыдущая статья описывала как использовать графические утилиты, такие как DSA.msc, LDP.exe или ADSIEDIT.msc для подключения и просмотра снимка AD. Эта статья расскажет о двух утилитах командной строки — LDIFDE и CSVDE, которые позволят экспортировать информацию из снимка AD.
LDIFDE и CSVDE — две утилиты которые позволяют экспортировать информацию из Active Directory, а так же создавать объекты Active Directory из LDIF и CSV файлов определенного формата. Экспортируемая информация может быть отфильтрована на основе местоположения объекта в каталоге, по членству в OU и по классам объекта, таким как пользователь, группа или компьютер. Наряду со многими другими опциями, при экспорте вы можете выбрать, какие атрибуты объектов необходимы к выгрузке.
В своих статьях я использую LDAP порт 10389 для снимков AD. Так же я создал OU (Organization Unit), названный Dev, в моем тестовом домене и добавил туда нескольких пользователей. После этого я сделал снимок AD и затем внес некоторые изменений в этих пользователях в работающей системе.
Поскольку LDIFDE и CSVDE имеют в основном схожий синтаксис команд, вот несколько основных параметров команд, которые мы будем использовать в этом примере. Помните, что есть много других параметров команд, однако о них я не буду вести речь в этой статье.
- -f параметр, задает путь к файлу, к примеру -f c:/test.csv или -f c:/test.ldf
- -s параметр, задает имя сервера для соединения, например -s WIN2008-dc1
- -t параметр, задает номер порта LDAP, например -t 10389
- -d параметр, позволяет отфильтровать выгрузку по конкретному объекту или OU. Например для выгрузки только OU Dev, а не всего содержимого AD параметр будет выглядеть так -d «ou=dev,dc=petrilab,dc=local» . А для того чтобы выгрузить только пользователя James из OU Dev, строка будет такой -d «cn=james,ou=dev,dc=petrilab,dc=local»
- -r параметр, позволяет фильтровать выгрузку по классу объекта, например -r «(objectClass=user)»
- -l параметр (англ L, только маленькая), задает атрибут для выгрузки, например -l telephonenumber
CSVDE.exe
Эта утилита командной строки позволяет выгрузить из AD или в нашем случае из снимка AD практически любой объект или атрибут. CSVDE.exe экспортирует данные в CSV (Comma Separated Value) файл и с ним удобно работать в Excel или в любом текстовом редакторе.
CSVDE.exe не работает с паролями, поэтому ее нельзя использовать для экспорта паролей из AD. Так же CSVDE не позволяет редактировать или удалять существующие объекты.
Для использования CSVDE.exe со снимком AD, сделайте следующее:
- Зайдите под пользователем, членом группы Domain Admins на контроллер домен Windows Server 2008 на котором у вас смонтирован снимок AD.
- Пуск — Выполнить — CMD
Для начала нам надо выгрузить информацию из работающей базы AD, для этого выполним следующую команду:
C:’Users’Administrator>csvde -d «cn=james,ou=dev,dc=petrilab,dc=local» -r «(objectClass=user)» -l telephonenumber -f c:’test.csv
Connecting to «(null)»
Logging in as current user using SSPI
Exporting directory to file c:’test.csv
Searching for entries…
Writing out entries.
Теперь проделаем тоже самое со снимком AD, который у нас работает на LDAP порту 10389:
C:’Users’Administrator>csvde -s WIN2008-dc1 -t 10389 -d «cn=james,ou=dev,dc=petrilab,dc=local» -r «(objectClass=user)» -l telephonenumber -f c:’testsnap.csv
Connecting to «WIN2008-dc1»
Logging in as current user using SSPI
Exporting directory to file c:’testsnap.csv
Searching for entries…
Writing out entries
.
Export Completed. Post-processing in progress…
1 entries exported
The command has completed successfully
Посмотрим на результаты выгрузки двух команд, видите отличия?
LDIFDE.exe
Как и CSVDE.exe эта утилита командной строки позволяет выгрузить из AD или в нашем случае из снимка AD практически любой объект или атрибут. LDIFDE.exe экспортирует данные в LDIF (LDAP Data Interchange Format) файл. LDIF формат — это кросплатформенный стандарт, он позволяет переносить данные из сторонних служб каталогов в Active Directory. В отличии от CSV файлов, с LDIF файлами невозможно работать в excel, только в текстовых редакторах.
Основное отличие LDIFDE от CSVDE в том, что LDIFDE может модифицировать существующие объекты и даже удалять их.
Однако LDIFDE не поддерживает изменений членства в группах и так же как и CSVDE не поддерживает выгрузку паролей.
Для использования LDIFDE.exe со снимком AD, сделайте следующее:
- Зайдите под пользователем, членом группы Domain Admins на контроллер домен Windows Server 2008 на котором у вас смонтирован снимок AD.
- Пуск — Выполнить — CMD
Для начала нам надо выгрузить информацию из работающей базы AD, для этого выполним следующую команду:
C:’Users’Administrator>ldifde -d «cn=james,ou=dev,dc=petrilab,dc=local» -r «(objectClass=user)» -l telephonenumber -f c:’test.ldf
Connecting to «WIN2008-DC1.petrilab.local»
Logging in as current user using SSPI
Exporting directory to file c:’test.ldf
Searching for entries…
Writing out entries.
1 entries exported
The command has completed successfully
Теперь проделаем тоже самое со снимком AD, который у нас работает на LDAP порту 10389:
C:’Users’Administrator>ldifde -s WIN2008-dc1 -t 10389 -d «cn=james,ou=dev,dc=petrilab,dc=local» -r «(objectClass=user)» -l telephonenumber -f c:’testsnap.ldf
Connecting to «WIN2008-dc1»
Logging in as current user using SSPI
Exporting directory to file c:’testsnap.ldf
Searching for entries…
Writing out entries.
1 entries exported
The command has completed successfully
Посмотрим на результаты выгрузки двух команд, видите отличия?
Восстановление информации
Вы можете посмотреть информацию в полученных при экспорте файлах и вручную изменить ее в рабочей AD. Это возможно проделать для нескольких объектов или параметров. Для массового восстановления я рекомендовал бы использовать утилиту DSCT о которой я писал в этой статье Directory Service Comparison Tool — сравнение баз Active Directory а для восстановления единичных объектов вам пригодится эта статья Восстановление удаленных элементов в Active Directory.