Экспорт информации из снимка (snapshot) Active Directory в Windows Server 2008

Экспорт информации из снимков Active Directory в Windows Server 2008

Функционал в Windows Server 2008 позволяет администраторам создавать в ручную или программно снимки базы Active Directory в определенное время. Используя снимки Active Directory вы можете просматривать информацию в этом снимке без необходимости перегружать ваш контроллер домена в режиме Directory Services Restore (DSRM). Эти снимки могут быть сохранены на локальный диск контроллера домена или скопированы любой другой носитель. Более подробно как это делается вы можете прочитать в моих предыдущих статьях. Снимки Active Directory (Active Directory Snapshots) в Windows Server 2008Автоматическое создание снимков (snapshots) Active Directory .

В общих чертах процесс создания и использования снимка AD выглядит следующим образом:

1. Любым способом, в ручную или запланированной задачей используя утилиту NTDSUTIL создайте снимок раздела который содержит базу AD.

2. Используя ту же утилиту смонтируйте полученный шаблон.

3. Запустите утилиту DSAMAIN, чтобы опубликовать ваш снимок на LDAP сервере.

После того как мы создали снимок AD, давайте посмотрим, что у него внутри. Для этого будем использовать графические утилиты, такие как DSA.msc, LDP.exe или ADSIEDIT.msc. Если все сделали верно, то после того как введете имя сервера и LDAP порт, который задали, вы сможете просматривать информацию снимка AD, так же, как будто это рабочая база AD.

Вы так же можете использовать и утилиты командной строки, такие как LDIFDE или CSVDE для экспорта информации из снимка. О том, как использовать эти утилиты вы можете прочитать в этой статье CSVDE и LDIFDE — экспорт информации из снимков (Snapshots) Active Directory в Windows Server 2008 .

Примечание: В отличии от Windows Server 2003, утилиты LDP.exe и ADSIEDIT.msc уже встроены в Windows Server 2008 и вам не нужно дополнительно устанавливать Support Tools, как в прошлой версии.

Помните, что информация в снимке доступна только для чтения и по умолчанию доступ к ней есть только у членов группы Domain Admins или Enterprise Admins.

Основное отличие использования утилит просмотра для просмотра рабочей базы AD и снимка базы AD, в том, что для просмотра снимка необходимо указывать специфический LDAP порт. По умолчанию, когда вы работаете в рабочей базой AD, вам не надо подставлять стандартный порт LDAP (389), за вас это делает система. Вам надо задавать порт только при работе со снимком AD. Необходимо указывать тот номер порта LDAP, что вы указывали в команде DSAMAIN после функции ldapport.

В своих статьях я использую порт 10389. Так же я создал OU (Organization Unit), названный Dev, в моем тестовом домене и добавил туда нескольких пользователей. После этого я сделал снимок AD и затем внес некоторые изменений в этих пользователях в работающей системе.

Используем DSA.msc — Active Directory Users and Computers

Возможно самый простой в использовании способ увидеть необходимую информацию в снимке AD. Дополнительный плюс от использования Windows Server 2008 еще и в том, что теперь часть функций ADSIEDIT доступна уже в консоли Active Directory Users and Computers.

Для просмотра снимка AD через DSA.msc, сделайте следующее:

1. Зайдите под пользователем, членом группы Domain Admins на контроллер домен Windows Server 2008 на котором у вас смонтирован снимок AD.

2. Пуск — Выполнить — DSA.msc

3. Вы увидите консоль Active Directory Users and Computers с рабочей базой AD. Мы оставим эту консоль для сравнения с данными снимка в дальнейшем.

4. Выполните п.2. еще раз.

5. Во втором окне консоли Active Directory Users and Computers, нажмите правой кнопкой мыши на имени домена и выберите пункт — Change Domain Controller.

connctng-ad-snapshots-1

6. В открывшемся окне перейдите к пункту <Type a Directory Server name[:port] here> и впишите туда имя сервера и порт. В моем примере WIN2008-DC1:10389.

connctng-ad-snapshots-2

7. После нажатия Enter приложение будет проверять состояние указанного имени и порта и если все работает корректно, статус у этой записи изменится на Online. Нажмите ОК.

8. Расположите рядом два окна консоли Active Directory Users and Computers. Как вы видите по серым меню вторая консоль со снимком AD в режиме — только для чтения (readonly). Даже активная кнопка Х (удаление) все равно не работает.

connctng-ad-snapshots-3

9. Если вы откроете свойства пользователя (в моем примере это John) то увидите что в консоли снимка AD все разделы серые, без возможности редактирования. Вы можете только в ручную скопировать информацию из консоли снимка AD, в консоль рабочей AD.

connctng-ad-snapshots-4

10. После всех действий, закройте консоль.

Используем ADSIEDIT.msc

Основным плюсом консоли ADSIEDIT.msc перед DSA.msc является то, что в ней вы можете видеть все разделы AD — Configuration и Schema, так же как и раздел Domain. Эта консоль так же позволяет просматривать все объекты и атрибуты.

Примечание: ADSIEDIT.msc теперь является частью системы Windows Server 2008.

Для использования ADSIEDIT.msc сделайте так:

1. Зайдите под пользователем, членом группы Domain Admins на контроллер домен Windows Server 2008 на котором у вас смонтирован снимок AD.

2. Пуск — Выполнить — ADSIEDIT.msc

3. В консоли ADSIEDIT.msc нажмите правой кнопкой мыши на разделе ADSI Edit и выберите пункт Connect To…

connctng-ad-snapshots-5

4. В открывшемся окне настроек соединения введите имя и порт сервера. В моем примере WIN2008-DC1:10389 и нажмите Ok.

connctng-ad-snapshots-6

5. Если все прошло успешно, то вы увидите дерево каталогов снимка AD. Перейдите в OU Dev и выберите пользователя John, нажмите на него два раза мышкой, откроются его свойства, как видите, они тоже не подлежат редактированию.

connctng-ad-snapshots-7

6. Как закончите, закройте консоль.

Как говорил выше, используя консоль ADSIEDIT.msc вы можете просматривать информацию не только в разделе Default naming context – AD Domain, но и в разделах Configuration и Schema.

Используем LDP.exe

LDP.exe как и ADSIEDIT.msc позволяет просматривать все разделы AD — Configuration и Schema, так же как и раздел Domain. Однако просмотр объектов и атрибутов идет в текстовом режиме и это может быть удобным в некоторых случаях.

Примечание: LDP.exe также теперь является частью системы Windows Server 2008.

Для просмотра снимка AD через LDP.exe сделайте следующее:

1. Зайдите под пользователем, членом группы Domain Admins на контроллер домен Windows Server 2008 на котором у вас смонтирован снимок AD.

2. Пуск — Выполнить — LDP.exe

3. В окне LDP выберите меню Connections и Connect.

connctng-ad-snapshots-8

4. В открывшемся окне соединения введите имя и порт сервера. В моем примере WIN2008-DC1:10389 и нажмите Ok.

connctng-ad-snapshots-9

5. Если подключение прошло успешно то вы увидите информацию о подключении в правой части окна LDP. Вам надо задать пользователя и пароль для подключению к снимку AD для этого перейдите в меню Connections и далее в Bind. Введите туда пользователя, пароль и домен.

connctng-ad-snapshots-10

6. Сделайте отображение каталогов AD в виде дерева, для этого в меню View выберите Tree (или просто Ctrl+T).

connctng-ad-snapshots-11

7. Используйте открывшееся выпадающее меню, что бы задать раздел — Domain, Configuration или Schema.

connctng-ad-snapshots-12

8. Перейдите по дереву в OU Dev к пользователю John, нажмите на него два раза мышью. Справа отобразится информация о нем.

connctng-ad-snapshots-13

9. После завершения, закройте LDP.

Другой метод — использование VBS скрипта

Я не сильно вдавался в подробности, потому как для себя не нашел практического применения этому, но для вас это может быть полезным. Вы можете использовать этот скрипт для экспорта данных из снимка AD в TSV файл (файл с табуляциями). В этом примере приведен скрипт, который пробегает по всем пользователям и экспортирует параметры переменных samAccountName и displayName в файл. Этот файл потом вы сможете просмотреть например Excel.

Обратите внимание на код, там указан номер порта 10389, замените его на свой, если используете другой.

'--------------------------------------------------------------------------
' NAME: export-attr.vbs
' DATE: 3/6/2008
' DESCRIPTION: Connects to a directory service provider on the specified
' port and exports a list of attributes for each user object
' in the directory to a tab-separated values file.
' AUTHOR: Ken St. Cyr
'--------------------------------------------------------------------------

Option Explicit

' Define our parameters
CONST LDAPPORT = 10389
CONST DCNAME = "localhost"
CONST ATTRIBUTES = "samAccountName,displayName"
CONST OUTPUT_FILE = "attribute_backup.tsv"

' Create the necessary objects for writing to a file
Dim objFSO : Set objFSO = CreateObject("Scripting.FileSystemObject")
Dim objFile : Set objFile = objFSO.OpenTextFile(OUTPUT_FILE, 8, True)

' Get the RootDSE for the directory on the port that we want
Dim objRootDSE : Set objRootDSE = GetObject("LDAP://" & DCNAME & ":" & _
 LDAPPORT & "/RootDSE")

' Create the connection object for the AD provider
Dim objConnection : Set objConnection = CreateObject("ADODB.Connection")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

' Define the search to execute
Dim objCommand : Set objCommand = CreateObject("ADODB.Command")
objCommand.CommandText = "<LDAP://" & DCNAME & ":" & LDAPPORT & "/" & _
objRootDSE.Get("defaultNamingContext") & ">;(&objectCategory=user);" & _
 ATTRIBUTES & ";subtree"
objCommand.ActiveConnection = objConnection

' Execute the search
Dim objRecordSet : Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

' Go through each result about output the attributes to a Tab-Separated file
While Not objRecordSet.EOF
 Dim strSAMAccountName : strSAMAccountName = objRecordSet.Fields("samaccountname")
 Dim strDisplayName : strDisplayName = objRecordSet.Fields("displayName")
 objFile.WriteLine strSAMAccountName & vbtab & strDisplayName
 objRecordSet.MoveNext
Wend

objFile.Close

WScript.Echo objRecordSet.RecordCount & " entries written to " & OUTPUT_FILE

В заключении

Не забудьте отключить снимок AD и демонтировать его после того, как закончите с ним работать. Как это сделать читайте тут Снимки Active Directory (Active Directory Snapshots) в Windows Server 2008 .

Leave a Reply

*

Dansette

Рейтинг@Mail.ru Яндекс.Метрика