Снимки Active Directory (Active Directory Snapshots) в Windows Server 2008
Снимок (Snapshot) — это теневая копия раздела, содержащего базу Active Directory и логи, созданная службой Volume Shadow Copy Service (VSS). С помощью снимков Active Directory вы имеете возможность просмотреть информацию о том, в каком состоянии у вас находилась Active Directory в момент формирования снимка, сравнить с текущим состоянием Active Directory и между различными снимками и все это без запуска контроллера домена в режиме Directory Services Restore Mode.
Windows Server 2008 имеет новую функцию, которая позволяет администраторам создавать снимки базы Active Directory (AD) для дальнейшего автономного использования.
Используя эту технологию вы можете подключить снимок AD в качестве LDAP сервера и подключиться к нему для просмотра.
Помните, что вы должны использовать механизмы защиты и для снимков AD, как это делаете для обычных архивных копий. Например шифрование или любые другие предупредительный меры по безопастности что бы уменьшить риск нелегального получения этих данных.
Есть несколько сценариев использования снимков AD. Например, если кто то изменил свойства каких то атрибутов AD и вам нужно вернуть все как было, к прежним значениям. Вы можете подключить снимок AD параллельно существующей AD и выгрузить необходимые атрибуты для всех объектов которые были изменены. Затем вы так же сможете импортировать эти атрибуты в рабочую AD. Вы можете восстановить удаленные объекты или просто сравнить объекты в рабочей базе и в снимке в целях диагностики.
Подключенный снимок AD дает возможность увидеть, как выглядела база AD в тот момент когда был сделан снимок, какие объекты присутствовали, информация и т.д. Однако невозможно сразу переместить или скопировать объекты или атрибуты из снимка AD в рабочую базу. Для того что бы сделать это вам сначала необходимо будет экспортировать необходимые данные из снимка, а потом импортировать в рабочую AD. Более подробно об этом вы можете прочитать в моих других статьях — Directory Service Comparison Tool — сравнение баз Active Directory , Экспорт информации из снимка (snapshot) Active Directory в Windows Server 2008.
В первый раз может показаться довольно сложно создавать снимок, монтировать его, подключатся к нему, отключаться, демонтировать и возможно даже удалять снимок, но это стоит знать, и эта статья вам в помощь. Поскольку на мой взгляд это намного проще чем останавливать контроллер домена, перезагружать его в DSRM режиме, восстанавливать System State из бекапа и выгружать объекты или атрибуты.
Итак, как это делается:
Создание снимка Active Directory
Для создания снимков AD нам потребуется утилита NTDSUTIL, это встроенная утилита Windows Server 2008, она доступна если у вас на сервере установлена роль Active Directory Domain Services (AD DS) или Active Directory Lightweight Directory Services (AD LDS).
Наши действия:
1. Зайдите на контроллер Windows Server 2008 под учетной записью, члена группы Domain Admins.
2. Откройте командную строку — Пуск — Выполнить — CMD.
3. В командной строке наберите
ntdsutil
4. Далее там же наберите
snapshot
Примечание: Утилита NTDSUTIL имеет многоуровневый интерфейс, поэтому команды надо набирать одну за другой. Вы можете набрать «?» для получения сведений о возможных командах на каждом уровне. Так же вы можете использовать укороченный набор команд, например вместо «snapshots» набирать просто «sna».
5. Прежде чем использовать команды меню «snapshots», надо выбрать активный экземпляр базы, делается это командой:
- activate instance ntds
результат ее должен выгдлядеть так
snapshot: Activate Instance ntds
Active instance set to «ntds».
6. Теперь создадим снимок, набираем
create
результат должен выгдлядеть так
snapshot: create
Creating snapshot…
Snapshot set {3a861a35-2f33-4d7a-8861-a10e47afdaba} generated successfully.
7. Что бы посмотреть все снимки, которые уже имеются используйте эту команду
list all
Результат может выглядеть так
snapshot: create
snapshot: List All
1: 2008/10/25:03:14 {ec53ad62-8312-426f-8ad4-d47768351c9a}
2: C: {15c6f880-cc5c-483b-86cf-8dc2d3449348}
8. Далее вы можете оставить окно NTDSUTIL открытым или набрать два раза quit для выхода.
Примечание: В принципе утилита NTDSUTIL позволяет выполнить все эти пункты одной строкой:
ntdsutil «Activate Instance NTDS» snapshot create quit quit
Вы можете просто автоматизировать этот процесс, как это сделать написано в этой статье Автоматическое создание снимков (snapshots) Active Directory.
Монтирование снимка Active Directory
Для того чтобы подключиться к снимку, его необходимо смонтировать. Используя команду List All, как мы это делали в шаге 7 выше, определите нужный вам снимок и запомните номер принадлежащий ему.
Для монтирования снимка проделайте следующие шаги:
1. Зайдите на контроллер Windows Server 2008 под учетной записью, члена группы Domain Admins.
2. Откройте командную строку — Пуск — Выполнить — CMD.
3. В командной строке наберите
ntdsutil
4. Далее там же наберите
snapshot
5. Что бы посмотреть все снимки которые уже имеются используйте эту команду
list all
Результат может выглядеть так
snapshot: create
snapshot: List All
1: 2008/10/25:03:14 {ec53ad62-8312-426f-8ad4-d47768351c9a}
2: C: {15c6f880-cc5c-483b-86cf-8dc2d3449348}
6. В этом примере вы видите только один доступный снимок 2008/10/25:03:14, его то мы и будем монтировать.
Набираем команду:
mount 2
Результат должен выглядеть так:
snapshot: mount 2
Snapshot {15c6f880-cc5c-483b-86cf-8dc2d3449348} mounted as C:’$SNAP_200810250314_VOLUMEC$’
7. Далее вы можете оставить окно NTDSUTIL открытым или набрать два раза quit для выхода.
Примечание: Так же как и в предыдущем шаге утилита NTDSUTIL позволяет выполнить все эти пункты одной строкой.
Однако помните что NTDSUTIL требует чтобы команда «list all» выполнялась с той же сессии команды что и «mount» да еще и в последовательности, «list all» сначала, «mount» потом. Строка с командой будет выглядеть так:
ntdsutil snapshot «list all» «mount 2» quit quit
Примечание: Вам не обязательно всегда закрывать окно утилиты NTDSUTIL, его можно и оставить, например если вы захотите отмонтировать снимок после работы с ним.
Подключение снимка Active Directory
Для подключения снимка Active Directory который вы только что смонтировали необходимо использовать команду DSAMAIN.
Это тоже встроенная команда Windows Server 2008 и имеется на серверах с установленными ролями Active Directory Domain Services (AD DS) или Active Directory Lightweight Directory Services (AD LDS).
После использования утилиты DSAMAIN для покдлючения снимка AD вы сможете использовать различные графические утилиты для просмотра снимка, например Active Directory Users and Computers (DSA.msc), ADSIEDIT.msc, LDP.exe или другие. Так же вы можете использовать и утилиты командной строки, такие как LDIFDE или CSVDE, которые позволяют экспортировать данные из снимка. Подробно об этом вы можете прочитать в других моих статьях Directory Service Comparison Tool — сравнение баз Active Directory , Экспорт информации из снимка (snapshot) Active Directory в Windows Server 2008.
Обратите внимание, что при подключении снимка утилитой DSAMAIN применяются следующие правила:
- Все права на родительский каталог снимка принудительно применяются и на все вложенные каталоги.
- По умолчанию, только пользователи групп Domain Admins и Enterprise Admins имеют права просматривать снимки.
И так, во-впервых для подключения, нам нужно знать полный путь к файлу NTDS.dit в снимке. Для этого
1. Открываем проводник и переходим по папкам к тому месту где располагается файл NTDS.dit, копируем полный пусть включая имя файла и расширение.
2. Либо можно поступить иначе, найти файл NTDS.dit в каталоге снимка и скопировать его в любое новое место. После этого запомните новый путь к файлу, включая имя файла и его расширение. Если вы выберите этот путь, не забудьте, что демотирование и удаление снимка не приведет к удалению этого файла. Так что помните об этом файле и соблюдайте безопастность.
Во-вторых, надо назначить новый порт для подключений к сервису LDAP. Вы можете использовать любой свободный порт. В этом примере я использовал порт 10389. DSAMAIN может публиковать LDAP по 4-ем портам LDAP, LDAP/SSL, GC, и GC/SSL.
Вы можете вручную задать каждому протоколу свой порт, но если вы зададите номер порта только первому протоколу, то система сама пронумерует остальные прибавив единицу к предшествующему. И так если вы назначите порт 10389 для LDAP, то получите :
LDAP: 10389
LDAP/SSL: 10390
GC: 10391
GC/SSL: 10392
Для подключения снимка AD следуйте этим шагам:
1. Зайдите на контроллер Windows Server 2008 под учетной записью, члена группы Domain Admins.
2. Откройте командную строку — Пуск — Выполнить — CMD.
3. В командной строке наберите
dsamain -dbpath «C:’$SNAP_200810250314_VOLUMEC$’Windows’NTDS’ntds.dit» -ldapport 10389
Система не выдаст ни каких сообщений о том, что снимок был подключен. Однако сообщение вида — «Microsoft Active Directory Domain Services startup complete» говорит о том, что наша база AD (ntds.dit) подключена. Не закрывайте окно командной строки, пока сессия DSAMAIN будет запущена, вы сможете подключаться к новому LDAP серверу на назначенный порт.
Результат команды должен выглядеть так:
C:’Users’Administrator>dsamain -dbpath
«C:’$SNAP_200810250314_VOLUMEC$’Windows’NTDS’ntds.dit» -ldapport 10389
EVENTLOG (Informational): NTDS General / Service Control : 1000
Microsoft Active Directory Domain Services startup complete, version 6.0.6001.18072
О дальнейших действиях вы можете прочитать в этой статье Directory Service Comparison Tool — сравнение баз Active Directory , Экспорт информации из снимка (snapshot) Active Directory в Windows Server 2008.
Отключение снимка AD
Для отключения снимка вы должны нажать Ctrl+C в окне DSAMAIN. Система выдаст вам сообщение о том что AD остановлено.
Так должно выглядеть сообщение
EVENTLOG (Informational): NTDS General / Service Control : 1004
Active Directory Domain Services was shut down successfully.
Демонтирование снимка AD
Последнее, что надо сделать — это демонтировать снимок. Как вы догадываетесь делать мы это будем через NTDSUTIL.
Вот основные шаги:
1. В командной строке набрать
NTDSUTIL
2. Далее набрать
snapshot
3. Далее
list mounted
вывод команды должен быть такой
snapshot: List Mounted
1: 2008/10/25:03:14 {ec53ad62-8312-426f-8ad4-d47768351c9a}
2: C: {15c6f880-cc5c-483b-86cf-8dc2d3449348} C:’$SNAP_200810250314_VOLUMEC$’
4. Демонтируем снимок 2
unmount 2
должны увидеть следующее
snapshot: Unmount 2
Snapshot {15c6f880-cc5c-483b-86cf-8dc2d3449348} unmounted.
5. Выход из NTDSUTIL — два раза quit.
И как обычно, это все можно выполнить одной строчкой, но команда «list mounted» должна выполняться в тойже сессии и перед «unmount». Вот пример строки:
ntdsutil snapshot «list mounted» «unmount 2» quit quit
Удаление снимка AD
В принципе у вас нет необходимости удалять снимок, но если это понадобилось то делаем следующее:
1. Открываем CMD , запускаем
ntdsutil
2. набираем:
snapshot
3. тобы посмотреть имеющиеся в системе снимки набираем:
list all
вот что должны увидеть:
snapshot: create
snapshot: List All
1: 2008/10/25:03:14 {ec53ad62-8312-426f-8ad4-d47768351c9a}
2: C: {15c6f880-cc5c-483b-86cf-8dc2d3449348}
4. Для удаления снимка набираем:
delete 2
В результате видим:
snapshot: delete 2
Snapshot {15c6f880-cc5c-483b-86cf-8dc2d3449348} deleted.
5. Выходим из ntdsutil.