Корзина Active Directory windows server 2008R2 и методы восстановления объектов

Обновлено 27.05.2018

На сайте я уже писал про корзину AD но для windows server 2012R2, и решил таки перенести сюда мою старую статью про 2008R2.

Active Directory — одна из самых важных служб для сетей Windows, любые сбои в ее работе сказываются на всех пользователях сети. При неполадках в Active Directory очень важно иметь отработанные сценарии аварийного восстановления. Одна из наиболее распространенных причин сбоя службы — случайное удаление объектов, поэтому предлагаю вам познакомиться с некоторыми способами восстановления удаленных объектов в Active Directory.
Итак, что делать, если вы случайно удалили из Active Directory нужного пользователя (компьютер, группу, контейнер и т.п. )?

Отвечу на вопрос, который сразу возникает в подобной ситуации - создать новый объект гораздо проще, чем пытаться восстановить старый, и в некоторых ситуация это допустимо. Но давайте представим, что произойдет при создании, скажем, нового пользователя взамен удаленного. Да, мы можем дать ему точно такое же имя, и он даже сможет зайти под ним в сеть, но и все! Попытавшись получить доступ к ресурсам, на которые у него раньше были права, он получит отказ.

А дело в том, что Active Directory различает объекты не по имени, а по специальному идентификатору - Security Identifier (SID). Это уникальный идентификатор безопасности, который присваивается объекту в момент его создания и остается с ним даже после удаления. А поскольку каждый SID уникален, то вновь созданный пользователь, вне зависимости от имени, получит свой SID и будет распознан системой как совершенно другой пользователь. При этом будет потеряна вся информация, которая была закреплена за старой учетной записью, и придется все делать заново — раздавать права, включать пользователя в группы, настраивать программы, и много других ″интересных″ моментов.

Поэтому, чтобы избежать проблем (да и просто для общего развития) стоит иметь представление о способах восстановления удаленных объектов в Active Directory.

Что происходит с объектом AD при удалении

Для начала разберемся с тем, что происходит после того как вы нажали Delete и объект исчез из оснастки управления.

При удалении объекта из каталога происходит следующее: сначала объект помечается как удаленный, для чего атрибуту isDeleted объекта присваивается значение true, затем большинство атрибутов из объекта удаляется, объект переименовывается и перемещается в специальный контейнер — Deleted Objects. Теперь он зовется объектом-захоронением и недоступен для обычных операций в AD.

Объект-захоронение невидим в оснастках управления MMC, а для большинства служебных программ его вообще не существует. Однако физически данные все еще здесь — просто они невидимы. Зачем же Active Directory хранит удаленные объекты в базе данных?

А вот зачем: будучи невидимым для остальных процессов, объект-захоронение все еще видим для процесса репликации. Чтобы удостовериться в том, что удаление выполнено полностью, на всех контроллерах домена, содержащих удаленный объект, AD реплицирует объект-захоронение на все контроллеры в домене. Другими словами, объект-захоронение используется для репликации удаления по всей Active Directory.

Естесственно, удаленные объекты не могут храниться в контейнере Deleted Objects вечно. С периодичностью раз в 12 часов контроллер домена производит сборку мусора. Сборщик мусора проверяет все объекты-захоронения и физически удаляет те, чей срок жизни больше, чем срок жизни объектов-захоронений.

Срок жизни объекта-захоронения определяется атрибутом tombstoneLifetime и по умолчанию составляет 180 дней (60 дней для лесов Windows 2000). Посмотреть текущее значение tombstoneLifetime и изменить его можно следующим способом.

Открываем редактор ADSIEdit и в качестве точки подключения (Connection Point) выбираем «Select or Type a Distinguished Name or Naming Context». В пустом поле вводим путь CN=Directory Service,CN=Windows NT, CN=Services, CN=Configuration, DC=contoso, DC=com (для домена contoso.com).

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-01

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-01

Нажимаем OK и в оснастке появляется новый контекст именования. Разворачиваем его и в открывшемся окне находим интересующий нас атрибут tombstoneLifetime. Как видите, он действительно равен 180 дням.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-02

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-02

Получается что пока не истек срок жизни объекта-захоронения, удаленный объект физически находится в базе AD, и соответственно может быть поднят из могилы восстановлен.. Еще очень важный вопрос это про атрибуты удаленного объекта, если уровень леса 2008r2 и включена корзина проблем с этим не будет, если нет то следующий раздел.

Атрибуты объекта

При удалении объекта и помещении его в контейнер Deleted Objects удаляется большая часть его атрибутов. Так у объекта пользователя сохраняются только идентификаторы SID и GUID, а также LastKnownParent (контейнер, в котором находился объект до удаления) и SAMAccountName (имя учетной записи SAM). Соответственно, при возвращении объекта к жизни любым из вышеописанных способов восстановятся только эти атрибуты, все остальное придется вводить заново.

Для наглядности возьмем восстановленную нами учетную запись и попробуем ее активировать. Система тут же выдаст нам ошибку и сообщит о том, что пароль не соответствует требованиям безопасности домена. На самом деле все проще, пароль был удален вместе с другими атрибутами и теперь его просто нет.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-03

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-03

Путем несложных манипуляций некоторые атрибуты объектов можно заставить сохраняться при удалении. Сделать это можно, внеся изменения в схему Active Directory. Скажу сразу, атрибуты уже удаленных записей это не вернет.

Для внесения изменений воспользуемся редактором ADSIEdit. Открываем его и подключаемся к разделу Schema нашей Active Directory.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-04

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-04

Для примера возьмем атрибут Description учетной записи пользователя.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-05

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-05

Теперь ищем нужный нам атрибут. Схема содержит огромный список атрибутов, и чтобы найти свой, как минимум нужно знать, как он называется в схеме. Имейте в виду, что названия атрибутов, которые указаны в свойствах объекта Active Directory в схеме могут различаться.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-06

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-06

Найдя атрибут, открываем его двойным щелчком мыши и заходим в свойства. Нас интересует параметр searchFlags, который отвечает за сохранение атрибута в объекте-захоронении. У каждого атрибута он свой, в нашем случае searchFlags вообще не задан, т.е. равен 0.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-07

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-07

Для того, чтобы заданный атрибут не удалялся, необходимо у searchFlags включить третий бит, или другими словами, выставить третий бит равным 1. Поскольку searchFlags представлен в десятичном виде, то сначала переведем его в двоичный. Получится двоичное число 0000. Биты нумеруются справа-налево, начиная с нулевого бита. Находим третий бит (он будет четвертым по счету справа) и ставим его равным 1. Получаем двоичное число 1000. Переводим его обратно и получаем 8 в десятичной системе. Ставим 8 в значении searchFlags. Если все сделано правильно, то в значении параметра появится надпись «Сохранять при удалении» (PRESERVE_ON_DELETE).

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-08

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-08

Теперь даже при удалении и восстановлении учетной записи пользователя атрибут Description будет сохранен. Однако этот способ подходит не для всех атрибутов. Так например атрибуты, описывающие членство в группах Active Directory, подобным образом сохранить невозможно. Для решения этой проблемы в Windows Server 2008 R2 появился новый инструмент под названием Active Directory Recycle Bin, или корзина Active Directory

Корзина Active Directory

Принцип работы корзины

Для начала вспомним, как выглядит жизненный цикл объекта AD при удалении. Объект помечается как удаленный (атрибут isDeleted объекта устанавливается в true) и из него удаляются лишние атрибуты. Затем он переименовывается и перемещается в контейнер Deleted Objects, в котором хранится в течение срока жизни удаленного объекта. По истечении этого срока он удаляется окончательно.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-09

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-09

При включении корзины Active Directory картина меняется. Теперь при удалении объекта Active Directory система сохраняет все атрибуты объекта, после чего объект помечается как логически удаленный (это новое состояние, появившееся в Windows Server 2008 R2). Его имя изменяется, атрибуту isDeleted назначается значение true и объект перемещается все в тот же контейнер Deleted Objects. В этом состоянии объект остается на протяжении срока жизни удаленного объекта. Пока объект находится в состоянии удаленный, его можно восстановить без потери атрибутов или членства в группах.

Когда срок жизни удаленного объекта заканчивается, он переводится в состояние утилизированный. В этом состоянии его атрибуту isRecycled присваивается значение true, связанные значения атрибутов (группы и др.), наряду с большинством обычных атрибутов удаляются, так же, как при отсутствие корзины. Объект, переведенный в это состояние, невозможно восстановить обычными способами. По истечении срока жизни утилизированного объекта он физически удаляется сборщиком мусора.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-10

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-10

Условия для включения корзины

Корзина Active Directory впервые появилась в Windows Server 2008 R2. По умолчанию она неактивна и для ее включения необходимо соблюдение следующих условий:

1) Уровень функционирования леса должен быть не ниже Windows Server 2008 R2;
2) В лесу не должно быть контролеров домена под управлением Windows Server 2003;
3) Если лес изначально создавался на базе Windows Server 2003, необходимо осуществить обновление схемы.

Для обновления схемы надо выполнить adprep /forestprep на контроллере домена с ролью мастера схемы, выполнить adprep /domainprep /gpprep на контроллере домена с ролью мастера инфраструктуры. Если есть контроллер домена только для чтения (RODC), запустить на нем adprep /rodcprep.

Пара важных моментов, которые учесть до включения. Первое — после активизации корзины AD все ранее удаленные объекты становятся утилизированными и не смогут быть восстановлены. Второе — включение корзины AD процесс односторонний, т.е. если ее активировать, то отключить уже невозможно.

Условия для включения корзины

Корзина Active Directory впервые появилась в Windows Server 2008 R2. По умолчанию она неактивна и для ее включения необходимо соблюдение следующих условий:

1) Уровень функционирования леса должен быть не ниже Windows Server 2008 R2;
2) В лесу не должно быть контролеров домена под управлением Windows Server 2003;
3) Если лес изначально создавался на базе Windows Server 2003, необходимо осуществить обновление схемы.

Для обновления схемы надо выполнить adprep /forestprep на контроллере домена с ролью мастера схемы, выполнить adprep /domainprep /gpprep на контроллере домена с ролью мастера инфраструктуры. Если есть контроллер домена только для чтения (RODC), запустить на нем adprep /rodcprep.

Пара важных моментов, которые учесть до включения. Первое — после активизации корзины AD все ранее удаленные объекты становятся утилизированными и не смогут быть восстановлены. Второе — включение корзины AD процесс односторонний, т.е. если ее активировать, то отключить уже невозможно.

Включение корзины

Графического интерфейса для работы с Active Directory Recycle Bin в Server 2008 R2 нет. Майкрософт предлагает два способа работы с корзиной - утилита LDP или модуль Active Directory для PowerShell. На мой взгляд LDP имеет не очень дружелюбный интерфейс, поэтому воспользуемся вторым способом.

Посмотреть состояние корзины и проверить, включена ли она, можно с помощью команды:

Get-ADOptionalFeature ′Recycle Bin Feature′

Как видите, у корзины нет активных областей (EnabledScopes), значит она не активна.
Графического интерфейса для работы с Active Directory Recycle Bin в Server 2008 R2 нет. Майкрософт предлагает два способа работы с корзиной - утилита LDP или модуль Active Directory для PowerShell. На мой взгляд LDP имеет не очень дружелюбный интерфейс, поэтому воспользуемся вторым способом.

Посмотреть состояние корзины и проверить, включена ли она, можно с помощью команды:

Get-ADOptionalFeature ′Recycle Bin Feature′

Как видите, у корзины нет активных областей (EnabledScopes), значит она не активна.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-11

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-11

Включим корзину следующей командой:

Enable-ADOptionalFeature –Identity ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC= contoso, DC= com’ –Scope ForestOrConfigurationSet –Target ‘contoso.com’

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-12

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-12

Способы увеличить время атрибутов msDS-DeletedObjectLifetime и tombstoneLifetime

1. ADSIEdit идем в Контекст именования и дальше по пути CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=contoso,DC=com, Правым кликом попадаем в свойства. Нас интерисует msDS-DeletedObjectLifetime и tombstoneLifetime

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-13

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-13

2. Способ LDP. запускаем на DC эту утилитку. Нажимаем подключение-Привязка

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-14

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-14

Выбираем привязать текущего пользователя.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-15

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-15

Далее Вид-Дерево

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-16

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-16

Далее пишем DN домена.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-17

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-17

Переходит по пути  CN=Directory Service,CN=WindowsNT,CN=Services,CN=Configuration,DC=contoso,DC=com

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-18

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-18

И щелкаем правым кликом Изменить.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-19

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-19

Добавляем нужные параметры и вводим новые значения.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-20

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-20

Все готово

3. PowerShell

Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,
CN=Services,CN=Configuration,DC=contoso,DC=com” –Partition
″CN=Configuration,DC=contoso,DC=com″ –Replace:@{″msDS-DeletedObjectLifetime″ = 365}

И такое-же значение дадим для tombstoneLifetime:

Set-ADObject -Identity ″CN=Directory Service,CN=Windows NT,
CN=Services,CN=Configuration,DC=contoso,DC=com″ –Partition
“CN=Configuration,DC=contoso,DC=com” –Replace:@{″tombstoneLifetime″ = 365}
Процедура восстановления

В качестве примера возьмем учетную запись пользователя Ivanov Vasiliy и удалим ее. Прощай Vasiliy

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-21

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-21

1.LDP

Для восстановления воспользуемся утилитой LDP. LDP — это служебная программа для работы с Active Directory, немного схожая с проводником Windows. В Windows Server 2008 она включена в состав операционной системы, в Server 2003 входит в средства поддержки (Support tools) и устанавливается отдельно, с установочного диска.

Для запуска LDP нажимаем Win+R и в строке выполнить вводим ldp. Затем идем в меню Connection, выбираем пункт Connect и в открывшемся окне вводим имя контроллера домена, к которому надо подключиться. Если вы запускаете LDP на контроллере домена, то можно просто ввести localhost.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-22

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-22

Теперь необходимо пройти проверку подлинности. Открываем меню Connection, выбираем Bind (Привязка), вводим учетные данные и жмем OK. Для работы нам понадобятся учетные данные пользователя с правами администратора домена или предприятия (только они имеют право просматривать и восстанавливать объекты в контейнере Deleted Objects).

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-23

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-23

Контейнер Deleted objects надежно скрыт от посторонних глаз, и для того, чтобы его увидеть, необходимо включить элемент управления LDAP «Возврат удаленных объектов». Для этого открываем меню Options и выбираем пункт Controls, чтобы вывести диалог элементов управления. Открываем список Load Predefined, в нем выбираем пункт Return Deleted Objects (Вернуть удаленные объекты) и нажимаем кнопку Check in. Это добавит идентификатор объекта (OID) для элемента управления «Вернуть удаленные объекты» (1.2.840.113556.1.4.417) в список активных элементов управления. Нажимаем OK, чтобы сохранить настройки элемента управления.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-24

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-24

Затем открываем меню View, выбираем режим просмотра Tree, в поле BaseDN выбираем DC=contoso,DC=com.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-25

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-25

Заходим в корень, раскрываем контейнер Deleted Objects и видим перечень удалённых объектов. В этом перечне находим нужный нам объект-пользователя CN=Ivanov Vasily. Кликаем правой клавишей мыши на найденом объекте и в выпадающем меню выбираем пункт Modify. Кстати, будьте готовы к тому, что в Deleted Objects очень много объектов, что может затруднить поиск.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-26

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-26

Для восстановления объекта надо провести две операции:

1) Удалить отметку об удалении - набираем в строке Attribute: isDeleted, в поле Operation выбираем Delete и нажимаем Enter;
2) Переместить из Deleted objects в исходный контейнер - набираем в поле Attribute: distignuishedName, в поле Values пишем: CN=Ivanov Vasily, OU=Managers, DC=contoso, DC=com (это исходный DN пользователя). Исходный контейнер пользователя можно посмотреть в правом окне, он записан в атрибуте lastKnownParent. В качестве операции выбираем Replace и опять нажимаем Enter.

Далее отмечаем оба пункта Synchronous и Extended и жмём кнопку Run.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-27

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-27

2. AdRestore

AdRestore предлагает достаточно удобный и простой интерфейс командной строки для восстановления объектов Active Directory. Хотя он не очень гибок, использовать его гораздо легче, чем LDP. При запуске без параметров AdRestore выдаст список всех объектов-захоронений в контейнере Deleted Objects дефолтного домена. Для поиска конкретного объекта в качестве параметра можно использовать имя (частично или полностью) объекта, например:

adrestore ivanov

В результате этой команды будут выведены все объекты-захоронения в контейнере CN=Deleted Objects, которые содержат строку ivanov в атрибуте CN или OU — программа использует поисковый фильтр LDAP cn=*ivanov* и ou=*ivanov*. Не самый гибкий способ поиска, но в большинстве ситуаций он работает.

Если нужно не только найти объект, но и восстановить его, необходимо вместе с именем объекта указать параметр –r , вот так:

adrestore -r ivanov

Эта команда предложит восстановить каждый подходящий объект-захоронение. И еще, AdRestore всегда восстанавливает объект в контейнер, указанный в атрибуте lastKnownParent объекта-захоронения, нет никакого способа указать другой контейнер.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-28

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-28

Ну и для тех, кому не подходят первые два варианта, есть графическая утилита ADRestore.NET. Она абсолютно бесплатна, взять ее можно здесь. ADRestore.NET позволяет производить поиск объекта по нескольким параметрам, а также дает возможность выбрать определенный контроллер домена и авторизоваться под пользователем, отличным от текущего. Пользоваться программой очень просто. Нажимаем на кнопку Enumerate Tombsones, и нам выдается список удаленных объектов. Выбираем нужный объект и жмем Restore Object. Вот и все.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-29

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-29

3. Использование AD Recycle Bin (Windows Server 2008 R2)

1. Запускаем от имени администратора Модуль Active Directory для Windows PowerShell.
2. В командной строке Active Directory module for Windows PowerShell введите следующую команду:

PS C:\> Get-ADObject -Filter {displayName -eq "user"} -IncludeDeletedObjects | Restore-ADObject
В данном примере
-Filter {displayName -eq «user»} указывает, что какую информацию об объекте AD необходимо получить (в примере – об объекте с отображаемым именем пользователя “user),
-IncludeDeletedObjects означает, что поиск осуществляется по удаленным объектам
Restore-ADObject непосредственно осуществляет восстановление объекта AD.

Поиск удаленных объектов
1. Запускаем от имени администратора Модуль Active Directory для Windows PowerShell.
2. В командной строке Active Directory module for Windows PowerShell вводим следующие команды для получения необходимой информации:

Вывод информации об удаленных объектах в домене acme.com

Get-ADObject -SearchBase "CN=Deleted Objects,DC=acme,DC=com" –IncludeDeletedObjects
Получаем информацию о том, в какой OU состоял удаленный пользователь

Get-ADObject -SearchBase "CN=Deleted Objects,DC=acme,DC=com" -ldapFilter:"(msDs-lastKnownRDN=User)" –IncludeDeletedObjects –Properties lastKnownParent

Где User – отображаемое имя пользователя

В итоге получаем информацию о принадлежности к OU указанного пользователя (с помощью -Properties lastKnownParent)

Поиск всех удаленных объектов, которые входили в данную OU

В качестве примера берем различающееся имя OU Finance_Department, которое было получено после запуска предыдущего командлета (Finance_Department\\0ADEL:e954edda-db8c-41be-bbbd-599bef5a5f2a).

Get-ADObject –SearchBase "CN=Deleted Objects,DC=acme,DC=com" -Filter {lastKnownParent -eq 'OU=Finance_Department\\0ADEL:e954edda-db8c-41be-bbbd-599bef5a5f2a,CN=Deleted Objects,DC=acme,DC=com'} -IncludeDeletedObjects -Properties lastKnownParent | ft

3. Восстанавливаем учетные записи и OU, которые являются непосредственными дочерними объектами OU Finance_Department (помните, что на этом этапе различающееся имя Finance_Department уже восстановлено в значение OU=Finance_Department,DC=acme,DC=com)

Get-ADObject -SearchBase "CN=Deleted Objects,DC=acme,DC=com" -Filter {lastKnownParent -eq "OU=Finance_Department,DC=acme,DC=com"} -IncludeDeletedObjects | Restore-ADObject
Опционально (восстановление вложенных OU)

4. Восстанавливаем учетные записи, входящие во вложенную OU (например, OU Admins, которая входит в состав OU Finance Department. Различающееся имя в нашем примере было восстановлено в значение OU=Admins,OU=Finance_Department,DC=acme,DC=com)

Get-ADObject -SearchBase "CN=Deleted Objects,DC=acme,DC=com" -Filter {lastKnownParent -eq "OU=Admins,OU=Finance_Department,DC=acme,DC=com"} -IncludeDeletedObjects | Restore-ADObject
Подробную справку о командлетах и их параметрах вызвав командлет Get-Help, например Get-Help Get-ADObject

4. Принудительное восстановление с помощью NTDSUTIL

Стандартным способом (но, однако, не самым подходящим) является принудительное восстановление из резервной копии в режиме Directory Service Restore Mode. Он обладает серьезными недостатками: нужно перезагружать сервер, а во-вторых, восстанавливать из резервной копии состояние системы и помечать, какие объекты не будут перезаписаны процессом репликации.
Восстановление осуществляется с помощью утилиты командной строки NTDSUTIL. Утилита становится доступной после установки роли AD DS. Используя ее, можно восстановить как OU со всем содержимым, так и отдельный объект.
Работа утилиты основана на мгновенных снимках (снапшотах) Active Directory, которые делаются при помощи службы VSS.

Внимание! В ходе принудительного восстановления AD внутренний номер версии восстанавливаемых объектов увеличивается. После подключения контроллера домена к сети эти объекты будут реплицированы по всему домену, а восстановленная версия становится глобально действующей.

Порядок действий:
1. Нам необходимо восстановить OU Finance_Department из домена acme.com
2. Загружаемся в режиме DSRM (в загрузочном меню вызывается нажатием клавиши F8) и выполните регистрацию с паролем, DSRM, заданным во время работы Dcpromo. AD не загружается, база данных переводится в автономный режим.

Внимание! Невозможно выполнить восстановление, если на контроллерах домена Server 2008 и выше остановлена служба NTDS AD.

3. Восстановите системное состояние из резервной копии, созданной до аварии.

Внимание! Не перезагружайте компьютер.

В снимке, полученном при помощи ntdsutil, присутствует как сам объект, так и его атрибуты. Образ можно монтировать и подключать в качестве виртуального LDAP-сервера, экспортирующего объекты. Запускаем ntdsutil:

> ntdsutil
ntdsutil: snapshot
Просматриваем список доступных снимков:

снимок: list all
1: 2009/04/22:23:18 {8378f4fe-94c2-4479-b0e6-ab46b2d88225}

2: C: {732fdf7f-9133-4e62-a7e2-2362227a8c8e}

3: 2009/04/23:00:19 {6f7aca49-8959-4bdf-a668-6172d28ddde6}

4: C: {cd17412a-387b-47d1-9d67-1972f49d6706}

Монтируем командой mount c указанием номера или {ID}:

снимок: mount 4
Снимок {cd17412a-387b-47d1-9d67-1972f49d6706} установлен как C:\$SNAP_200904230019_VOLUMEC$\
Снимок смонтирован.

4. Запустите команду

Для восстановления подразделения Finance_Department

> ntdsutil "authoritative restore" "restore subtree ou=Finance_Department,dc=acme,dc=com" q q
В итоге будет восстановлена OU Finance_Department с входящими в нее учетными записями и вложенной OU Admins
Для восстановления отдельной учетной записи, например, c отображаемым именем Oleg

> ntdsutil "authoritative restore" "restore object cn=Oleg,ou=Finance_Department,dc=acme,dc=com" q q
5. Необходимо подтвердить предупреждения безопасности. Затем будет выдано сообщение, подобное показанному на рисунке 3. Обратите внимание на сформированные текстовые и LDIF-файлы.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-30

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-30

Перезагрузите DC в нормальном режиме запуска операционной системы.
7. Зарегистрируйтесь на DC и откройте командную строку. Импортируйте LDIF-файл, экспортированный на шаге 5, выполнив команду

ldifde -i -f
ar_20110221-151131_links_contoso.com.ldf
где ar_20110221-151131_links_contoso.com.ldf – имя созданного LDIF-файла.
8. В результате будут импортированы значения связанных атрибутов (такие, как членство в группах) для восстановленных объектов

Внимание! Если в лесу содержится несколько доменов, необходимо использовать текстовый файл, экспортированный на шаге 6 для восстановления членства в локальных группах других доменов.

Итог:
Учетные записи и объекты восстановлены, однако база Active Directory была недоступна в течение определенного периода времени. Вы также зависите от наличия актуальных баз данных AD, полагаясь на данный метод восстановления.

5. Процесс восстановления объектов можно очень сильно упростить, если воспользоваться утилитой NetWrix Active Directory Object Restore Wizard.

Сразу хочется отметить, что в нашу компанию постоянно обращаются администраторы, которые удалили объекты AD и теперь хотят их восстановить. Предлагаемое нами решение – NetWrix Active Directory Object Restore Wizard — хоть и позволяет упростить процесс восстановления объектов (например, восстановить OU со всеми объектами и их атрибутами за пару кликов), однако все равно не творит чудеса – программа должна быть установлена в домене и периодически делать снимки AD. Поэтому рекомендуем после прочтения статьи все-таки поставить программу работать (есть бесплатная версия с периодом восстановления за последние 4 дня), чтобы в следующий раз не испытывать таких проблем с восстановлением объектов.
Утилита позволяет восстанавливаться удаленные объекты за пару кликов, а в том случае, если программа работала до удаления объектов в домене, то восстановление происходит со всеми атрибутами. В итоге Вы получаете возвращенные учетные записи за пару минут без серьезных сбоев в работе организации. Также следует отметить то, что программа позволяет восстанавливать удаленные почтовые ящики.

Работа с программой сводится к следующим шагам:
1. Запускается мастер NetWrix Active Directory Object Restore Wizard.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-31

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-31

2. Выбирается режим восстановления:
• Только из tombstone-объектов (если программа не была установлена до этого в домене)
• Восстановление с использованием снапшотов (если программа была установлена и был сделан хотя бы один снапшот)

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-32

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-32

3. По результатам анализа выводится список удаленных объектов с их первоначальной иерархией и объектами

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-33

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-33

4. Выберите те OU или объекты, которые необходимо восстановить, и нажмите далее
5. В зависимости от того, была ли установлена программа раньше или нет:
• Если не была, то необходимо вручную восстановить членство в группах и пароли пользователей
• Если программа была установлена, то восстановление на этом закончено и все будет работать так, как будто ничего не произошло.

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-34

Корзина Active Directory windows server 2008R2 и методы восстановления объектов-34

Как Вы можете видеть, восстановление объектов занимает гораздо меньше времени, нежели с использованием штатных инструментов восстановления объектов Active Directory.
Но восстановление объектов – это только одна из сторон программы. Вы также можете откатывать изменения объектов – вплоть до значения одного атрибута – программа предназначена и для этого.

Автор - Сёмин Иван

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *