Показаны сообщения с ярлыком Windows Server 2008. Показать все сообщения
Показаны сообщения с ярлыком Windows Server 2008. Показать все сообщения

четверг, 2 сентября 2010 г.

Как восстановить Windows Server 2003 Active Directory

http://itew.ru/2009/06/27/593

В семействе продуктов Windows Server 2003 вы можете восстановить базу Active Directory, если она была повреждена или уничтожена из-за сбоев в программном обеспечении или сервере. Вы должны восстанавливать Active Directory, когда объекты в ней были изменены или удалены.

Примечание: Есть альтернативный способ восстановления удаленных объектов Active Directory, которые находятся в так называемом состоянии «tombstone». Такие объекты скрыты из графического интерфейса и ожидают очистки процессом, который называется «сборка мусора» (garbage collection). Подробно об этой процедуре рассказано в этой статье Восстановление удаленных элементов в Active Directory.

Вы можете использовать один из трех методов восстановления Active Directory из бекапа: Primary Restore, Normal Restore (т.е. Non Authoritative), и Authoritative Restore.

 

  • Primary Restore: Этот метод восстанавливает первый контроллер домена в домене, когда нет другой возможности восстановить домен. Производить Primary Restore можно только в случае, если все остальные контроллеры домена потеряны и вы хотите восстановить домен из бекапа. На локальном компьютере операцию восстановления Primary Restore могут провести только члены группы Administrators, в домене, только члены группы Domain Admins.
  • Normal Restore: Этот метод восстановления приводит Active Directory в состояние до бекапа, а затем обновляет изменениями с других контроллеров через стандартную репликацию контроллеров домена. Применяйте Normal Restore для домена с одним контроллером, чтобы вернуть его в последнее рабочее состояние.
  • Authoritative Restore: Используйте этот метод совместно с Normal Restore. Authoritative Restore позволяет помечать определенные восстановленные элементы, как новые, что предотвращает их изменение при репликации наоборот, они реплицируются на остальные контроллеры домена. Выполняйте Authoritative Restore при восстановлении отдельных объектов в домене, имеющем несколько контроллеров домена. При восстановлении методом Authoritative Restore вы потеряете все изменения данного объекта, которые были сделаны после бекапа. Для восстановления таким методом вы должны использовать утилиту командной строки NTDSUTIL. C помощью этой утилиты вы сможете пометить объекты Active Directory как «достоверные» (authoritative), чтобы они получили более высокую версию изменения, чем на остальных контроллерах домена и небыли изменены при репликации.
  • Например, если Вы неосторожно удалили или изменили объекты в Active Directory и после этого эти изменения были прореплицированы на другие контроллеры домена, вы должны применять метод Authoritative Restore, для того чтобы восстановленные элементы прореплицировались на другие контроллеры домена. Если вы не применяли метод Authoritative Restore при восстановлении объектов, они никогда не будут прореплицированы на другие контроллеры домена, потому что для них они будут казаться устаревшими. Использование утилиты NTDSUTIL для пометки данных как «достоверные» (authoritative), гарантирует, что они будут прореплицированны на другие контроллеры домена.

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

    Восстановление удаленных элементов в Active Directory

    Восстановление удаленных элементов (объектов «tombstone») в Active Directory

    Active Directory это древовидный каталог, который содержит информацию о сетевых ресурсах, таких как компьютеры, сервера, пользователи, группы и прочее. Основная функция Active Directory это централизованная авторизация. Стандартные операции при работе с Active Directory это – создание, управление, перемещение, редактирование и иногда удаление различных объектов, например, таких как пользователи, компьютеры, группы, контакты и прочее. Active Directory хранится на контроллерах домена и располагается в файле NTDS.DIT. (Это конечно не полное описание Active Directory, но для вступления хватить).

    Обычно администраторы думают дважды прежде чем, что-то удалять из Active Directory, но иногда случаются и ошибки. Прежде всего, надо убедиться, что у вас есть работающий бекап Active Directory. Для Windows 2000 или Windows 2003 вы можете использовать встроенный NTBACKUP и им резервировать System State. Но давайте предположим, что у нас нет такого бекапа или у нас есть различные факторы, которые нам не позволяют воспользоваться этим бекапом.

    Как происходит процесс удаления объектов в Active Directory?

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

    Объекты Active Directory запланированные к уничтожению из баз Active Directory помечаются маркером, который называется «tombstone». Метка «tombstone» означает, что атрибут IsDeleted объекта равен True, что говорит о том, что объект удален и помечен на уничтожение из базы  Active Directory. Объекты помеченные как «tombstone» перемещаются в контейнер Deleted Objects, где остаются пока процесс «garbage collection» не удалит их окончательно. По умолчанию процесс «garbage collection» запускается каждые 12-ть часов на контроллере домена. Объекты, помеченные как «tombstone», остаются в базе Active Directory до окончательного удаления в течение 60 дней на Windows 2000/2003 Active Directory и в течение 180 дней на Windows 2003 SP1 Active Directory  и выше, включая Windows Server 2008 R2 RC (кол-во дней указано по умолчанию). Время нахождения объектов «tombstone» в базе Active Directory должно быть значительно больше частоты работы процесса «garbage collection» для того, чтобы все помеченные на удаление объекты были реплицированы на другие контроллеры доменов.

    Время хранения объектов «tombstone», а так же интервалы запуска процесса «garbage collection» можно изменить:

    • Для объектов «tombstone» – установив новое значение для атрибута tombstoneLifetime в объекте CN=Directory Service,CN=Windows NT, CN=Services, CN=Configuration, DC=<корневой домен>
    • Для процесса «garbage collection» – установив новое значение для атрибута garbageCollPeriod объекта CN=Directory Service,CN=Windows NT, CN=Services, CN=Configuration, DC=<корневой домен>

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

    • Для атрибута isDeleted объекта еще не установлено значение «True». (Вы не можете удалить уже удаленный объект!)
    • Контрольный флаг «частный объект» дескриптора безопасности, зависящего от ресурса, не установлен в дескрипторе безопасности объекта. (Это недокументированное «свойство». Флаг частного объекта - это бит 1 байта Sbz1 структуры дескриптора безопасности.)
    • Бит «запретить удаление» (0×80000000) не установлен в атрибуте systemFlags объекта.
    • Для атрибута isCriticalSystemObject объекта не установлено значение «True».
    • Дескриптор безопасности объекта дает соответствующие права доступа пользователю для удаления объекта. (Конкретнее, пользователю позволяют удалить сам объект и удалить дочерний объект из родительского объекта.)
    • Объект не является объектом перекрестных ссылок (objectClass = crossRef) для существующего контекста именования.
    • У объекта нет никаких подчиненных объектов. (Если операция удаления по протоколу LDAP включает идентификатор объекта управления «удалить дерево» по протоколу LDAP, Active Directory автоматически удалит подчиненные объекты, если их атрибут isCriticalSystemObject не установлен в значение «True». Это защищает критические системные объекты от непреднамеренного удаления в ходе операции удаления объектов дерева. Разумеется, вы можете удалить эти объекты индивидуально.)
    • Объект не является критическим внутренним объектом (например, это не объект nTDSDSA для контроллера домена или не объекты заполнения для предшествующих объектов головных объектов NC).

    Если определено, что объект действительно может быть удален, Active Directory начинает переводить объект в состояние «tombstone».

    Сначала Active Directory удаляет ненужные атрибуты объекта, оставляя лишь обозначенные в таблице ниже и те, которые по схеме должны сохраняться у объекта «tombstone».

    Атрибуты, сохраненные в объекте «tombstone».

    Жестко заданные для сохранения атрибуты

    attributeID

    attributeSyntax

    dnReferenceUpdate

    dNSHostName

    flatName

    governsID

    groupType

    instanceType

    lDAPDisplayName

    legacyExchangeDN

    mS-DS-CreatorSID

    mSMQOwnerID

    nCName

    objectClass

    objectGUID

    objectSid

    oMSyntax

    proxiedObejctName

    replPropertyMetaData

    sAMAccountName

    securityIdentifier

    sIDHistory

    subClassOf

    systemFlags

    trustPartner

    trustDirection

    trustType

    trustAttributes

    userAccountControl

    uSNChanged

    uSNCreated

    whenCreated

    Сохраняемые благодаря установке searchFlags

    msDS-AdditionalSam AccountName

    msDS-Auxiliary-Classes

    msDS-Entry-Time-To-Die

    msDS-IntId

    msSFU30NisDomain

    nTSecurityDescriptor

    uid

    Затем она изменяет:

    • Относительное различающееся имя (RDN) объекта на CN=<old RDN>\0ADEL:<objectGUID>, где \0A означает символ ASCII перевода строки, а <objectGUID> – это objectGUID, выраженный строкой
    • Атрибут lastKnownParent устанавливается на различающееся имя (DN) родительского контейнера объекта
    • Атрибут isDeleted устанавливается в значение «True»
    • Active Directory удаляет из объекта все атрибуты ссылок на предыдущий и следующий элемент
    • Если в атрибуте systemFlag объекта не установлен бит «FLAG_DISALLOW_MOVE_ON_DELETE» , Active Directory перемещает объект в контейнер CN=Deleted Objects

    Необходимо учитывать, что папка CN=Deleted Objects - плоская и не имеет иерархии объектов. Можно предположить, что при удалении двух разных объектов с одним CN могут возникнуть конфликты имен. Этого не произойдет. Поскольку objectGUID включен в RDN каждого объекта «tombstone», RDN каждого объекта «tombstone» является уникальным в рамках контейнера CN=Deleted Objects.

    Вы должны понимать разницу между восстановлением объекта, который был давно удален и больше не существует в базе Active Directory и объектом «tombstone». Восстановление объектов «tombstone» называют реанимированием и эта статья об этом.

    При удалении объекты «tombstone» очищаются от многих атрибутов, и если вы решите реанимировать удаленного пользователя или группу вам придется восстанавливать  членство в группах или любые другие связи с другими объектами, которые вам могут понадобиться. Кроме того вы не сможете реанимировать объекты удаленные из раздела Configuration.

    В Windows Server 2003 SP1 появилась функция Directory Service Backup Reminders. Эта функция формирует сообщения в Event логе Directory Service под номером (Event ID 2089) если в Active Directory присутствуют объекты «tombstone», половина периода до окончательного удаления объектов прошло, а бекапа Active Directory не было. Сообщения с этим номером ошибки будут появляться ежедневно, пока бекап Active Directory не будет произведен.

    Просмотр объектов «tombstone» с помощью LDP.exe

    Для примера я создал через оснастку Active Directory Users and Computers нового пользователя Dead User.

    откроем LDP, посмотрим как выглядит этот пользователь

    Выбираем Connection – Connect , в открывшемся окне вводим имя контроллера домена или просто нажимаем ОК если делаем это на самом контроллере домена.

    Откроем древовидный вид – View – Tree или просто Ctrl+T

    Откроется окно выбора раздела, нажимаем ОК, система автоматически подставит раздел DC=<корневой домен> или вручную выбираем необходимый раздел, Schema, Configuration и т.д. но сейчас нам нужен именно корневой домен.

    Теперь надо привязать выбранный раздел – нажимаем Connection и Bind

    В открывшемся окне выбираем под кем будем привязывать раздел, если вы работаете под учетной записью с правами администратора домена, то можете выбрать «Bind as currently logged on user» иначе  выбирайте «Bind with credentials» и вводите соответствующие логин, пароль и домен.

    Теперь мы можем видеть каталоги Active Directory и свободно переходить по ним. В левой части окна я выделил нашего пользователя, в правой части – видны его свойства. Обратите внимание, что у пользователя заполнены некие свойства, например такие как description или telephoneNumber.

    Теперь давайте удалим нашего пользователя в оснастке Active Directory Users and Computers.

    Если мы вернемся в LDP и обновим информацию, увидим, что наш пользователь удалился.

    Как было сказано выше, пользователь не сразу удаляется из базы AD, а вначале только помечается как удаленный – теперь он объект «tombstone». Давайте найдем нашего помеченного к удалению пользователя. Для этого откроем меню Browse – Extended Op.

    В открывшемся окне нажмем на кнопку Controls, нам надо в разделе Load Predefined указать, что мы хотим, чтобы система нам возвращала и удаленные объекты – Return Deleted Objects. Нажимаем ОК и Close для применения изменений и закрытия окон.

    Теперь мы можем видеть в древовидной иерархии контейнер CN=Deleted Objects, а как мы знаем, если в объекте удаления не установлен бит «FLAG_DISALLOW_MOVE_ON_DELETE», запрещающий перемещение объекта , Active Directory перемещает объект в контейнер CN=Deleted Objects . Иначе надо искать объект удаления в том контейнере, где он был до удаления.

    Как мы видим теперь многие свойства были удалены и некоторые наоборот добавлены, например, такие как isDeleted .

    Однако со временем в контейнере CN=Deleted Objects может быть достаточно много объектов и для удобства поиска нужных объектов можно воспользоваться фильтром. Например, если мы выберем Virtual List View, в Base DN укажем нужный контейнер, а в Filter – укажем фильтр по какому либо критерию, в нашем примере мы хотим найти пользователя, поэтому поищем по свойству атрибута objectclass=user.  В разделе Scope выберем Base – для поиска объектов на том же уровне что и Base DN, One Level – для поиска объектов на следующем уровне, подчиненном Base DN, Subtree – для поиска на всех подлежащих уровнях Base DN.

    Поскольку контейнер CN=Deleted Objects одноуровневый – выбираем One Level. В Options выбираем Search Call Type – Extended. А в Control опять указываем, что нам надо отображать помеченные на удаление элементы. После запуска Run система нам отобразит отфильтрованные объекты.

    Варианты восстановления удаленных объектов в Active Directory

    Существует несколько способов реанимации объектов «tombstone» в Active Directory. Одни из них легкие, другие тяжелее, одни из них бесплатные, другие с применением платных утилит. В этой статье я расскажу о способах реанимации с применением свободно доступных утилит.

    Независимо от того, что вы делаете убедитесь, что у вас есть рабочий бекап System State контроллера домена. System State содержит локальный реестр, базу данных регистраций COM+ классов, системные загрузочные файлы, сертификаты с сервера сертификатов (если они установлены), базу данных кластера (если он установлен), NTDS.DIT файл и папку SYSVOL.

    Вы можете просто сделать бекап System State вашего контроллера домена использовав встроенную утилиту NTBACKUP или любую другую утилиту, которая поддерживает бекап System State. Вам не нужно делать бекап всех контроллеров домена, достаточно сделать бекап первого контроллера леса доменов и первого контролера в каждом домене.

    Восстановление объектов из бекапа

    Восстановление удаленных объектов из бекапа System State не такая уж и простая задача. По хорошему это не реанимация объекта, а именно восстановление. Однако для восстановления таким образом используя NTBACKUP и бекап System State, вам необходимо будет перезагрузить контроллер домена в режиме Directory Service Restore Mode (в этом режиме контроллер домена не функционирует для обслуживания клиентов). Только реанимация объектов позволит избежать загрузки контроллера домена в режиме Directory Service Restore Mode.

    Особенности восстановления объектов и шаги которые вам предстоит сделать описаны в этой моей статье Как восстановить Windows Server 2003 Active Directory.

    Восстановление объектов с помощью LDP.exe

    Для реанимации объекта помеченного на удаление нам необходимо изменить некоторые его атрибуты. Нам надо удалить атрибут isDeleted, именно удалить, а не изменить его свойство с True на Lie и атрибут distinguishedName вернуть в прежний вид. Для этого нам надо найти этот объект, таким образом, как это описано в разделе – Просмотр объектов «tombstone» с помощью LDP.exe этой статьи.

    После того как мы нашли нужный нам объект мы должны его модифицировать. Вот как это делается.

    Выделаем нужный нам объект и нажимаем Browse – Modify.

    В открывшемся окне нам надо определить DN – объект, который надо модифицировать. Далее нам надо создать Entry List с командами которые необходимы для модификации объекта.

    Для удаления атрибута isDeleted мы должны его название внести в раздел Attribute, выбрать необходимую операцию в разделе Operations, нам надо удалить атрибут, поэтому выбираем Delete и нажимаем Enter для ввода этой операции в Entry List.

    Тоже самое делаем и с атрибутом distinguishedName, только в нем мы должны задать новое значение этого трибута в разделе Values и нам не надо его удалять, нам его надо заменить на новое значение, поэтому в Operations выбираем Replace.

    Обязательно ставим галку напротив пункта Extended и нажимаем Run.

    Теперь если мы перейдем в OU=One_Users мы увидим нашего реанимированного пользователя.

    Однако, как мы помним, у объектов, помеченных на удаление, объектов «tombstone», удаляется большинство атрибутов и они не восстанавливаются, поэтому у пользователя теряется членство в группах, теперь нет атрибута description и telephoneNumber, которые были заполнены ранее. Так же не восстанавливается пароль объекта, поэтому пользователь реанимируется в статусе Disabled. Для того чтобы активировать пользователя, прежде ему надо задать новый пароль. Однако самое главное, SID  и GUID пользователя остался прежним, поэтому розданные ему доступы будут функционировать.

    Восстановление объектов с помощью ADRESTORE

    ADRESTORE – это бесплатная утилита командной строки, разработанная командой Sysinternals призванная упростить способ восстановления объектов «tombstone».

    Скачать ADRestore

    Для примера я снова удалил пользователя и группу из домена.

    У нее очень простой синтаксис, если мы запустим программу без каких либо параметров

    Adrestore.exe

    Она выдаст нам список обнаруженных объектов «tombstone» в AD.

    Для восстановления объектов нужно набрать

    Adrestore.exe -r

    Мы можем воспользоваться фильтрацией по имени объекта как для отображения объектов, так и для их восстановления.

    Adrestore.exe dead – для поиска всех объектов «tombstone» содержащих в названии *dead*

    Adrestore.exe -r dead – для реанимации всех объектов «tombstone» содержащих в названии *dead*. Если таких объектов будет несколько, система будет задавать вопрос о восстановлении по каждому их объектов.

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

    Восстановление объектов с помощью ADRestore.NET

    ADRestore.NET это графическая утилита разработанная Guy Teverovsky подробно о ней можно узнать тут http://blogs.microsoft.co.il/blogs/guyt/archive/2007/12/15/adrestore-net-rewrite.aspx.

    Скачать ADRestore.NET

    Основные ее возможности

    • Поиск объектов «tombstone»
    • Возможность выбора определенного контроллера домена
    • Есть возможность авторизации под пользователем отличным от локального
    • Реанимация объектов User, Computer, OU, Container
    • Предварительный просмотр атрибутов объектов «tombstone»

    Вот основное окно программы, думаю дополнительные комментарии излишни и так все понятно.

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

    Восстановление удаленных объектов AD в Windows 2008 (Recycle Bin)

    Статья взята из Blog of Khlebalin Dmitriy

    В Windows Server 2008 R2 появилось очень много новых возможностей, одной из которых является корзина Active Directory (Active Directory Recycle Bin).

    Корзина Active Directory – это специальная функция/фича/возможность восстановления удалённых объектов. Теперь после удаления объекта из Active Directory, он не просто удаляется, а перемещается в специальный контейнер Deleted Objects (хотя и раньше объект не просто удалялся, но об этом ниже). И если вы потом захотите восстановить объект, то это можно будет сделать, вытащив его из контейнера Deleted Objects.

    Функция Корзины Active Directory работает только в режиме работы леса и домена Windows Server 2008 R2! И кроме того эта функция по умолчанию  выключена.

    Включаем корзину Active Directory.

    >У меня домен зовется net.local, поэтому вы меняйте эти значения на свои.

    Включить функцию корзины можно двумя способами, либо через ldp.exe либо при помощи командлетов PowerShell.

    1) При помощи ldp.exe (входит в состав Support Tools).

    Запускаем Ldp.exe. Затем нажимаем Connection>Connect, пишем localhost, порт 389. Затем нажимаем View>Tree, в BaseDN выбираем CN=Configuration,DC=net,DC=local. Раскрываем CN=Configuration…. переходим к CN=Partitions…, нажимаем правой кнопкой по CN=Partitions… и выбираем Modify. Очищаем поле DN, в строке Attribute пишем: enableOptionalFeature, в строке Values пишем CN=Partitions,CN=Configuration,DC=net,DC=local:766ddcd8-acd0-445e-f3b9-a7f9b6744f2a, выбираем Add и нажимаем Enter и потом Run.

    2) При помощи PowerShell:

    Запускаем Пуск\Administrative Tools\Active Directory Module for Windows PowerShell и пишем:

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

    Восстанавливаем удалённые объекты.

    Способа восстановления удалённых объектов стандартными средствами два, при помощи ldp.exe или при помощи PowerShell. В тестовых целях я создал пользователя «robot», включил его в группу Domain Admins, а затем удалил. Теперь будем пытаться его восстановить.

    1) Восстанавливаем удалённые объекты при помощи ldp.exe:

    Запускаем Ldp.exe. Затем нажимаем Connection>Connect, пишем localhost, порт 389. Нажимаем Options>Controls, в меню Load Predefined выбираем Return deleted objects, жмём OK. Затем нажимаем View>Tree, в BaseDN выбираем DC=net,DC=local. Раскрываем корень DC=net,DC=local, и видим контейнер Deleted Objects, дважды по нему щелкаем и видим перечень удалённых объектов.

    Я вижу здесь удалённого мной ранее пользователя robot. Чтобы его восстановить, я нажимаем по нему правой кнопкой и выбираем Modify.

    Пишем в строке Attribute: isDeleted, ниже выбираем Delete, нажимаем кнопку Enter, затем пишем в поле Attribute: distignuishedName, в поле Values пишем: CN=robot,CN=Users,DC=net,DC=local (это исходный DN пользователя). Если вы не знаете исходный ОГП пользователя, то его можно посмотреть в правом окне, он записан в атрибуте lastKnownParent. Далее ставим обе галки Synchronous и Extended и жмём Run. Всё! Теперь объект пользователя полностью восстановлен, в чем вы можете убедиться, открыв консоль Active Directory Users and Computers.

    2) Восстанавливаем удалённые объекты при помощи PowerShell:

    Для того, чтобы найти объекты, используется командлет Get-ADObject. Чтобы он искал и удалённые объекты, нужно использовать ключ -IncludeDeletedObjects. А для восстановления объектов используется командлет Restore-ADObject. Когда необходимо восстановить объект, или тем более несколько объектов, удобнее всего использовать перенаправление (pipeline) вывода командлета Get-ADObject на вход командлета Restore-ADObject:

    Get-ADObject -Filter {sAMAccountName -eq «robot»} -IncludeDeletedObjects | Restore-ADObject
    Здесь я задал фильтр, чтобы укзать что я хочу восстановить только объект, который имеет атрибут sAMAccountName: robot. В общем, одна такая простая строчка, и объект полностью восстановлен!

    Естественно, что использование PowerShell намного удобнее и предпочтительнее, чем восстановление при помощи ldp.exe.

    Всем удачи!

    Active Directory Recycle Bin – новые возможности восстановления объектов AD

    В этой статье я постараюсь рассказать о новой функции в Windows Server 2008 R2 дающей новые возможности по восстановлению удаленных объектов Active Directory.

    Active Directory Recycle Bin (ADRB) – “корзина AD” – позволяет минимизировать простой вашей службы каталогов за счет расширенных возможностей по сохранению и восстановлению случайно удаленных объектов Active Directory без необходимости прибегать к восстановлению из бекапа и перезагрузки контроллеров домена.

    После включения функции ADRB все атрибуты удаленных объектов начинают сохраняться, что позволяет после восстановления получить объект в том же состоянии, в каком он был непосредственно перед удалением. Например, при восстановлении пользователя он автоматически получает членство в группах, в которых он был и соответствующие полномочия, которыми обладал в момент удаления в домене.

    ADRB функционирует как в среде Active Directory Domain Services (AD DS) так и в Active Directory Lightweight Directory Services (AD LDS).

    ВАЖНО

    • По умолчанию функция ADRB в Windows Server 2008 R2 не включена. Прежде чем включить эту функцию, вам необходимо будет поднять функциональный уровень леса до уровня windows Server 2008 R2, что в свою очередь требует иметь Windows Server 2008 R2 на всех контроллерах домена в лесу или на всех серверах содержащих AD LDS.
    • В этой версии Windows Server 2008 R2 процесс включения функции ADRB необратим. После включения этой функции вы уже не сможете ее отключить.

    Сценарии восстановления удаленных объектов AD

    Windows Server 2008 R2 предлагает два подхода к управлению удаленными объектами AD. Вы можете выбирать, работать, не включая функциею ADRB или включить ее.

    Если функция ADRB не включена, то система Windows Server 2008 R2 функционирует при удалении объектов AD так же, как и предыдущие системы Windows Server 2003/2008. При удалении объект не удаляется физически из AD, а лишь помечается как удаленный – “tombstone”. У объекта удаляется большинство атрибутов, кроме жестко привязанных, часть изменяются и дописываются новые. Если не запрещено объект перемещается в скрытый контейнер CN=Deleted Objects.

    Восстановить такой объект возможно из бекапа AD, применив режим authoritative restore, что бы объект был реплицирован на остальные контроллеры домена. Минус такого восстановления в том, что необходимо перегружать контроллер домена в режиме Directory Services Restore Mode (DSRM). В этом режиме он не может обслуживать пользователей. Так же при таком методе будут потеряны все изменения сделанные после бекапа.

    Так же такой объект можно реанимировать из состояния “tombstone”. Этот метод восстановления позволяет избежать простоя контроллера домена из-за перезагрузки в режиме DSRM. Но и этот метод имеет свои минусы, удаленные атрибуты придется восстанавливать, а так же членство в группах.

    Более подробно о методах восстановления объектов, читайте в моей прошлой статье Восстановление удаленных элементов в Active Directory.

    Вот схема жизненного цикла объекта AD в Windows Server 2003/2008 и Windows Server 2008 R2 с не включенной функцией ADRB.

    Если функция ADRB включена, то в системе Windows Server 2008 R2 удаление объекта AD происходит по-другому, чем описано выше. Вот схема жизненного цикла объекта AD в Windows Server 2008 R2 с включенной функцией ADRB.

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

    Удаленный объект

    После включения функции ADRB, когда происходит удаление объекта AD, система сохраняет все атрибуты этого объекта и помечает этот объект как “логически удаленный”, это новый статус объекта в Windows Server 2008 R2. Удаленный объект перемещается в контейнер CN=Deleted Objects, где находится в состоянии “логически удаленный” в течение времени жизни удаленного объекта (deleted object lifetime).

    Вы можете восстановить удаленный объект используя процесс восстановления “логически удаленных” объектов в течение времени жизни удаленного объекта (deleted object lifetime). В этот же период времени вы можете восстановить этот объект из бекапа используя режим authoritative restore.

    Переработанный объект (Recycled)

    После истечения времени жизни удаленного объекта (deleted object lifetime) “логически удаленный” объект становится “переработанным объектом” и большинство его атрибутов удаляются. “Переработанный объект” это новый статус объекта в Windows Server 2008 R2. Эти объекты остаются в контейнере CN=Deleted Objects в течение времени жизни переработанного объекта (recycled object lifetime). По окончании этого времени процесс garbage collection удаляет их физически из AD.

    ВАЖНО

    “Переработанный объект” не может быть восстановлен с использованием процесса восстановления “логически удаленных” объектов или реанимирован как объект “tombstone”. Это новый режим работы Windows Server 2008 R2.

    Не пытайтесь восстанавливать “переработанный объект” с помощью бекапа, используя режим authoritative restore. Вместо этого Microsoft рекомендует восстанавливать “логически удаленный” объект в течение времени его жизни.

    ВАЖНО.

    После включения функции ADRB, все объекты которые были удалены и находились в состоянии “tombstone” переходят в состояние “переработанный объект”. Эти объекты больше не отображаются в контейнере CN=Deleted Objects и не подлежат восстановлению через ADRB. Восстановить эти объекты возможно только до включения функции ADRB с помощью бекапа, используя режим authoritative restore.

    Время жизни удаленных и переработанных объектов

    Время жизни удаленного объекта определяется значением атрибута msDS-deletedObjectLifetime, а время жизни переработанного объекта, значением атрибута tombstoneLifetime. По умолчанию значение атрибута msDS-deletedObjectLifetime равно нулю. Когда значение атрибута msDS-deletedObjectLifetime равно нулю, это говорит о том, что время жизни удаленного объекта равно времени жизни переработанного объекта. По умолчанию, время жизни переработанного объекта равно значению атрибута tombstoneLifetime, которое равно нулю. В Windows Server 2008 R2, когда значение атрибута tombstoneLifetime равно нулю, то время жизни переработанного объекта равно 180 дней. Итого в днях по умолчанию оба время жизни удаленного объекта равно 180 дней, затем он становится переработанным объектом на 180 дней и затем удаляется окончательно.

    Вы можете изменять значения атрибутов msDS-deletedObjectLifetime и tombstoneLifetime в любое время. Если вы измените, значение по умолчанию атрибута msDS-deletedObjectLifetime, оно больше не будет коррелировать со значением атрибута tombstoneLifetime. О том как изменять значения этих атрибутов напишу чуть позже.

    Восстановление объектов Active Directory из бекапа используя authoritative restore

    Чтобы определить, можете ли вы использовать определенный бекап AD DS, чтобы успешно восстановить ранее удаленный объект через authoritative restore, Microsoft предлагает проверить значение времени жизни результирующего бекапа в вашем лесу Active Directory. Значением времени жизни результирующего бекапа в вашем лесу Active Directory, является количество дней в течение которых любой бекап в этом лесу Active Directory эффективен для восстановления среды Active Directory. (Задачи восстановления могут включать восстановление случайно удаленных данных или активацию контроллеров домена с носителей.)

    Microsoft предполагает, что значением времени жизни результирующего бекапа является наименьший параметр двух атрибутов msDS-deletedObjectLifetime и tombstoneLifetime. Исходя из выше сказанного значение времени жизни результирующего бекапа по умолчанию равно 180 дням.

    ВАЖНО

    Microsoft рекомендует, чтобы значение времени жизни результирующего бекапа в вашей среде Active Directory было равно или больше чем 180 дней, чтобы гарантировать, что вы сможете использовать имеющиеся бекапы для authoritative restore в течении длительного времени.

    Хотя Microsoft и позволяет изменять значения атрибутов msDS-deletedObjectLifetime и tombstoneLifetime, однако не рекомендует этого делать.

    Если значение атрибута msDS-deletedObjectLifetime меньше значения атрибута tombstoneLifetime, то восстановление объектов с использованием authoritative restore возможно только в период действия атрибута msDS-deletedObjectLifetime .

    Попытки восстановить переработанный объект с помощью authoritative restore не увенчаются успехом, т.к. после репликации восстановленный объект опять станет переработанным. Это правило так же работает если вы вручную перевели статус удаленного объекта в переработанный объект.

    Восстановление объектов Group Policy (GP) или Exchange объектов

    Вы можете использовать ADRB для восстановления всех удаленных объектов которые до этого хранились в AD DS. Однако если вы используете ADRB, чтобы восстановить объекты GP или Exchange объекты, вы восстановите только ту информацию, которая была в AD DS, а не полностью сами объекты.

    Для создания и восстановления архивных копий объектов GP рекомендуется использовать оснастку Group Policy Management, а затем вручную создать связи с необходимыми сайтами, доменами или OU в AD DS. О том как это делается я напишу чуть позже.

    Microsoft не рекомендует использовать ADRB для восстановления объектов Exchange, которые были удалены с помощью Exchange administrative tools. Вместо восстановления Microsoft рекомендует пересоздать такие объекты с помощью тех же инструментов Exchange administrative tools. Если же удаление произошло без применения инструментов Exchange administrative tools, то вы должны восстановить такие объекты через ADRB как можно быстрее. Однако, любые изменения конфигурации, которые произошли в среде между удалением этого объекта и его восстановлением, не будут восстановлены и могут привести к проблемам с Exchange.

    Например, если вы используете ADRB, чтобы восстанавливать случайно удаленных получателей Exchange, таких как контакты, пользователи или группы рассылки, убедитесь, что повторно применили текущую политику Exchange или другие данные конфигурации к ним. Эти данные, возможно, были изменены с момента удаления объектов.

    Требования для ADRB

    Для того чтобы вы могли включить ADRB ваша среда должна соответствовать определенным требованиям.

    Выполните следующие шаги перед включением функции ADRB в среде AD DS:

    Запустите adprep для обновления вашей схемы AD необходимыми ADRB атрибутами. Вы должны как минимум обладать правами Schema Admin для совершения данной операции.

    Важно

    Если вы изначально устанавливаете лес AD на основе Window Server 2008 R2 вам не нужно выполнять adprep, ваша схема AD уже содержит необходимые атрибуты для нормального функционирования ADRB.

    Если же вы устанавливаете новый контроллер Windows Server 2008 R2 в существующий лес Windows Server 2003 или Windows Server 2008 и затем оставшиеся сервера будете апгрейдить до Windows Server 2008 R2 вы должны запускать adprep, чтобы обновить схему AD необходимыми атрибутами необходимыми для работы ADRB.

    • Подготовить лес запустив adprep /forestprep на сервере держателе роли operation master
    • Подготовить домен запустив adprep /domainprep /gpprep на сервере держателе роли operation master
    • Если у вас в среде AD DS существует контроллер домена для чтения (RODC) вы должны так же запустить adprep /rodcprep
    • Убедитесь, что все контроллеры домена в лесу AD работают на Windows Server 2008 R2
    • Поднимите функциональный уровень леса AD до Windows Server 2008 R2.

    В следующей части статьи я расскажу о том, как включить систему ADRB в вашей среде AD.

     

    Active Directory Recycle Bin – новые возможности восстановления объектов AD (часть 2)

    В продолжение начатой статьи я постараюсь рассказать о функции в Windows Server 2008 R2 дающей новые возможности по восстановлению удаленных объектов Active Directory. А именно как включить функцию ADRB в вашей среде AD. В первой части статьи я рассказывал о том, что такое ADRB и как она работает.

    Active Directory Recycle Bin (ADRB) – “корзина AD” – позволяет минимизировать простой вашей службы каталогов за счет расширенных возможностей по сохранению и восстановлению случайно удаленных объектов Active Directory без необходимости прибегать к восстановлению из бекапа и перезагрузки контроллеров домена.

    И так, после того как мы подготовили лес и домены с помощью команды adprep, как это было описано в первой части статьи, мы можем перейти к следующим шагам.

    Для работы функции ADRB необходимо сделать два основных шага:

    • Поднять функциональный уровень леса до Windows Server 2008 R2
    • Включить функцию ADRB

    Поднятие уровня леса до Windows Server 2008 R2

    Вы можете поднять функциональный уровень леса следующими способами:

    • Используя команду Set-ADForestMode в Active Directory Module for Windows PowerShell
    • Используя утилиту LDP.exe
    • Используя консоль Active Directory Domains and Trusts

    ВАЖНО

    Обратите внимание, что нам надо поднять функциональный уровень леса, а не только домена. Поэтому использовать всем известную функцию Raise Domain Function Level в консоли Active Directory Users and Computers, будет недостаточно.

    Вам потребуются права Enterprise Admin для выполнения данных процедур.

    Вариант 1. С помощью Active Directory Module for Windows PowerShell

    Заходим на контроллер домена с правами Enterprise Admin или запускаем Active Directory Module for Windows PowerShell через runas.

    Start, Administrative Tools, правой кнопкой мыши Active Directory Module for Windows PowerShell, и выберите Run as administrator. Введите домен, логин и пароль пользователя с соответствующими правами.

    В открывшемся окне PowerShell наберите следующее:

    Set-ADForestMode -Identity <ADForest> -ForestMode <ADForestMode> , где <ADForest> имя корневого домена леса, а <ADForestMode> имя функционального уровня леса, нам надо набрать Windows2008R2Forest.

    Вот, как эта команда выглядела у меня для домена one.local

    Далее система попросит у вас подтверждение выполнения данной операции. Решайте, что вы будете делать, я согласился. Вот что у меня получилось в итоге, тоже должно получиться и у вас, если вы хотите установить ADRB.

    Для получения дополнительной информации по команде Set-ADForestMode наберите Get-Help Set-ADForestMode.

    Теперь давайте проверим функциональный уровень леса, сделать это мы можем командой Get-ADForest , вот что получилось у меня.

    Обратите внимание на параметр ForestMode, он изменился так как нужно.

    Вариант 2. С помощью утилиты LDP.exe

    Вот еще один вариант, как можно изменить функциональный уровень леса с помощью утилиты LDP.exe.

    Заходим на контроллер домена с правами Enterprise Admin и запускаем LDP.exe – Start, Run и набираем ldp.exe

    В открывшемся окне выбираем Connection, Connect

    Нажимаем ОК, подключаясь к текущему контроллеру

    При подключении вы должны увидеть нечто подобное у себя.

    Затем выполняем Connection, Bind

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

    Такое сообщение говорит о том, что вы успешно подключились.

    Откроем древовидный вид – View - Tree.

    В окне выбора ключевого узла Base DN, выберите Configuration Directory Partition

    Должно получиться вот что.

    Теперь перейдем к разделу CN=Partitions, нам нужно будет изменить его атрибуты.

    Нам нужно изменить значение атрибута msDS-Behavior-Version, для этого в открывшемся окне, в разделе Attribute: пишем msDS-Behavior-Version, а в разделе Values: ставим значение 4 (4 – соответствует значению функционального уровня леса – Windows Server 2008 R2) В поле Operations: выбираем Replace.

    Далее нажимаем кнопку Enter, чтобы наша команда попала в поле Entry List и нажимаем кнопку Run.

    Теперь значение атрибута msDS-Behavior-Version изменилось, мы поменяли значение функционального уровня леса.

    Вариант 3. С использованием консоли Active Directory Domains and Trusts

    Этот вариант совсем простой в использовании, делается несколькими кликами мышки.

    Заходим на контроллер домена с правами Enterprise Admin и открываем консоль Active Directory Domains and Trusts. Выделяем мышкой самый корень ветки - Active Directory Domains and Trusts – и нажимаем правой кнопкой, в выпадающем меню должен быть пункт – Raise Forest Function Level.

    В открывшемся окне, выбираем нужный нам функциональный уровень леса и нажимаем кнопку Raise.

    Система выдаст предупреждение о том, что данный процесс необратим. Ваш выбор, продолжать или отказаться. Я продолжаю и нажимаю OK.

    Затем система выдает сообщение о том, что изменение функционального уровня леса прошло успешно и теперь эти изменения буду реплицированы на другие контроллеры леса.

    Как мы теперь видим, функциональный уровень леса стал Windows Server 2008 R2

    Теперь вы знаете, как можно изменить функциональный уровень леса, вам остается выбрать подходящий для вас вариант, проделать его и перейти к следующему шагу, непосредственно включению функции ADRB.

    Включение функции ADRB

    Так же как и изменить функциональный уровень леса, включить функцию ADRB вы можете несколькими способами:

    • Используя команду Enable-ADOptionalFeature в Active Directory Module for Windows PowerShell (Microsoft рекомендует использовать именно этот метод)
    • Используя утилиту LDP.exe

    Вариант 1. С использованием команды Enable-ADOptionalFeature

    Заходим на контроллер домена с правами Enterprise Admin или запускаем Active Directory Module for Windows PowerShell через runas.

    Start, Administrative Tools, правой кнопкой мыши Active Directory Module for Windows PowerShell, и выберите Run as administrator. Введите домен, логин и пароль пользователя с соответствующими правами.

    В открывшемся окне PowerShell наберите следующее:

    Enable-ADOptionalFeature -Identity <ADOptionalFeature> -Scope <ADOptionalFeatureScope> -Target <ADEntity> где <ADOptionalFeature> – это название опции которую вы хотите включить, вы можете применить CN (common name) опции или DN (distinguished name), feature GUID или object GUID. <ADOptionalFeatureScope> – это область, на которую распространяется действие опции, <ADEntity> - это корневой домен леса.

    Для получения дополнительной информации по команде Enable-ADOptionalFeature наберите Get-Help Enable-ADOptionalFeature.

    Вот, как эта команда выглядела у меня для домена one.local

    Enable-ADOptionalFeature ‘Recycle Bin Feature’ -Scope ForestOrConfigurationSet  -Target one.local

    Для примера, эта команда равнозначна предыдущей

    Enable-ADOptionalFeature ‘CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=ONE,DC=local’ -Scope ForestOrConfigurationSet -Target one.local

    Далее система спросит у вас подтверждение данной операции, у вас будет выбор продолжить или отменить ее. Если вы продолжили у вас должно получиться тоже что и у меня.

    Вариант 2. С использованием утилиты LDP.exe

    Этот вариант немного посложнее в применении, зато дает понять ,что же происходит с системой внутри при выполнении команд через PowerShell.

    Заходим на контроллер домена с правами Enterprise Admin и запускаем LDP.exe – Start, Run и набираем ldp.exe

    В открывшемся окне выбираем Connection, Connect

    Нажимаем ОК, подключаясь к текущему контроллеру

    При подключении вы должны увидеть нечто подобное у себя.

    Затем выполняем Connection, Bind

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

    Такое сообщение говорит о том, что вы успешно подключились.

    Откроем древовидный вид – View - Tree.

    В окне выбора ключевого узла Base DN, выберите Configuration Directory Partition

    \

    Должно получиться вот что.

    Теперь перейдем к разделу CN=Partitions, нам нужно будет изменить его атрибуты.

    Нам нужно добавить новый атрибут enableOptionalFeature, для этого в открывшемся окне очищаем значения в разделе DN, в разделе Attribute: пишем enableOptionalFeature, а в разделе Values: ставим значение CN=Partitions,CN=Configuration,DC=mydomain,DC=com:766ddcd8-acd0-445e-f3b9-a7f9b6744f2a (DC=mydomain,DC=com - меняем на соответсвующее имя корневого домена леса, а 766ddcd8-acd0-445e-f3b9-a7f9b6744f2a – это значение атрибута msDS-OptionalFeatureGUID объекта CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, DC=mydomain,DC=com) В поле Operations: выбираем Add.

    Выполняем команду нажатием кнопки Run.

    Вот так вы можете посмотреть значение атрибута msDS-OptionalFeatureGUID. Вроде бы он одинаков для всех систем, но лучше проверить.

    ак, выбрав и проделав один из вариантов, мы включаем функцию ADRB.

    В следующей части статьи я расскажу о восстановлении объектов AD с помощью функции ADRB.