Active Directory Recycle Bin

Многие из нас сталкивались с ситуацией когда случайно, или не очень случайно, были удалены обьекты Active Directory. Для восстановления удаленных данных в Windows Server 2003 и Windows Server 2008 требовался ряд усилий для их востановления. Хоть объекты не полностью удалялись из базы Active Directory это была все ровно не простая задача. С приходом Windows Server 2008 R2 проблема с восстановлением удаленный объектов Active Directory Domain Services намного упростилась. В Windows Server 2008 R2 была создана «корзина» Active Directory, которая и облегчает работу при восстановлении удаленных данных. Кроме всего прочего, при использовании корзины, вы восстанавливаете удаленные объекты в горячем режиме, что в свою очередь уменьшает время простоя.

Давайте разберемся что необходимо для того чтобы можно было пользоваться корзиной. Для того чтобы воспользоваться корзиной её необходимо включить. Но перед этим необходимо убедиться что все домен контролеры работают под управлением Windows Server 2008 R2, а также режим работы леса Active Directory Domain Services поднят до уровня Windows Server 2008 R2. Для того чтобы поднять уровень леса можно воспользоваться команд летом Set-ADForestMode (Power Shell)

Set-ADForestMode -Identity <Корневой домен леса> [-ForestMode] <Уровень леса>

или воспользовавшись оснасткой Active Directory Domains and Trusts, которая обезательно присутствует на вашем домен контролере. Исключением является только тот случай когда наш домен контролер работает под управлением Server Core, в котором нету оснасток, так как он лишен привычного нам графического интерфейса. Если вы будите производить повышение леса до уровня Windows Server 2008 R2 с помощью Power Shell вам необходимо включить модуль Active Directory, это делается с помощью следующей команды

Import-Module ActiveDirectory

 

После чего можно включать корзину Active Directory командой Enable-ADOptionalFeature

Пример

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

image

Теперь мы все подготовили и включили корзину Active Directory.

Для того чтобы восстановить объект мы можем также воспользоваться команд летами Power Shell. Для восстановления удаленного объекта Active Directory используется команд лет Restore-ADObject, но проще всего использовать его совместно с Get-ADObject.

Если мы используем Get-ADObject для поиска удаленного объекта нам необходимо указать что поиск необходимо производить и в удаленных объектах, это делаться с помощью ключа –IncludeDeletedObjects.

Пример

Get-ADObject -Filter {name –like «*Vasia Pupkin*} -IncludeDeletedObjects | Restore-ADObject

Но для того чтобы отсеять похожие объекты, но которые не удалены проще всего указать поиск в разделе где находятся все удаленные объекты, но еще не стерты из Active Directory. Это делается с помощью ключа –SearchBase и указание что искать необходимо в контейнере Deleted Objects, в который помешаются все объекты, после того как их удалили

Пример

Get-ADObject –SearchBase «CN=Deleted Objects,DC=company,DC=local» -Filter {name –like «*Vasia Pupkin*»} -IncludeDeletedObjects | Restore-ADObject

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

Если был удален целый Organization Unit и нам необходимо восстановить объект который находился в этом Organization Unit, то сперва необходимо восстановить Organization Unit в котором на находился интересующий нас объект. Для того чтобы узнать кто был родителем интересующего нас объекта, необходимо воспользоваться ключом  -Properties с параметром lastKnownParent

Пример

Get-ADObject –SearchBase «CN=Deleted Objects,DC=company,DC=local» -Filter {name –like «*Vasia Pupkin*»} –IncludeDeletedObjects  –Properties lastKnownParent

image

В данном примере мы видим то что пользователь Vasia Pipkin находился в Organization Unit IT_Department который был тоже удален, что видно из его видоизмененного имени на на следующем шаге нам нужно подняться на уровень выше и узнать существует ли его родитель.(После удаления имя объекта меняется, в него добавляется значение DEL и GUID объекта, что значительно уменьшает количество необходимых действий при восстановлении объекта). Заменив в предыдущем запросе name –like «Vasia Pupkin» на ObjectGUID –eq “f50811a2-4412-423f-90b7-314648591747”, мы сделаем запрос поиска объекта с конкретным GUID, что на порядок уменьшит время обработки запроса. (GUID удаленного объекта пишется в его измененном имени, он идет после DEL»:)

Пример

Get-ADObject –SearchBase «CN=Deleted Objects,DC=company,DC=local» -Filter {ObjectGUID –eq “f50811a2-4412-423f-90b7-314648591747”} –IncludeDeletedObjects  –Properties lastKnownParent

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

Хочу обратить ваше внимание на то что объекты которые вы удаляете не на всегда остаются в корзине. Время их нахождения в корзине зависит от параметра известного как “время жизни могилки” или tombstoneLifetime. По умолчанию этот параметр имеет значени 180 дней. Для того чтобы изменить этот параметр можно воспользоваться Power Shell, или изменить с помощью ADSIEdit. Если вы решили изменить его с помощью Power Shell то вам необходимо выполнить следующую команду:

Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=company,DC=local” –Partition “CN=Configuration,DC=company,DC=local” –Replace:@{“tombstoneLifetime” = 500}

В этом примере я установил значение для tombstoneLifetime в размере 500 дней. Но будте внимательны изменяя этот параметр так как с увилечением времени жизни могилок, ваша база будет намного реже чиститься.

Pin It

One thought on “Active Directory Recycle Bin

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

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

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