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

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

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

Сначала разберемся, что происходит при удалении объекта из каталога AD. Поведение AD при удалении объектов зависит от того включена ли Active Directory Recycle Bin или нет (по умолчанию отключена). В обоих случаях объект не удаляется физически, а помечается как удаленный (атрибут isDeleted = true) и перемещается в специальный контейнер Deleted Objects (не отображается в обычных mmc оснастках управления AD). Однако при включенной корзине AD все атрибуты и членство в группах сохраняется.

По умолчанию в течении 180 дней (определяется в атрибуте домена msDS-deletedObjectLifetime) вы можете восстановить удаленный объект. Если данный срок прошел, объект все еще остается в контейнере Deleted Objects, но большинство его атрибутов и связей очищаются (Recycled Object ). После истечения периода tombstoneLifetime (по умолчанию также 180 дней, но можно увеличить) объект полностью удаляется из AD автоматическим процессом очистки и не может быть восстановлен (можно восстановить только их резервной копии контроллера домен AD).

Корзина AD (Active Directory Recycle Bin)

AD Recycle Bin доступна в Active Directory начиная с функционального уровня домена Windows Server 2008 R2. В предыдущих версиях Windows Server процесс восстановления объектов AD также возможен, но требует довольно сложных манипуляция с помощью утилит ntdsutil (вплоть до авторитативного восстановления из бэкапа AD в режиме Directory Service Restore Mode) или ldp.exe. Кроме того, благодаря корзине вы не потеряете атрибуты объекта и членство в группах.

Проверьте функциональный уровень леса (в моем примере Windows2016Forest):

Get-ADForest |Select-Object forestmode

проверить уровень домена forestmode из powershell

Проверьте, что корзина AD включена для вашего домена (по умолчанию она отключена):

Get-ADOptionalFeature “Recycle Bin Feature” | select-object name,EnabledScopes

Если значение EnabledScopes не пустое, значит в вашем домене корзина Active Directory уже включена.

проверить, что включена корзина active directory

Если нужно включить Active Directory Recycle Bin, используется командлет Enable-ADOptionalFeature:

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

Примечание. Корзину AD необходимо включить до того, как вы удалили объект из домена. После включения фичи Active Directory Recycle Bin отключить ее нельзя. Подробнее о корзине AD смотрите в статье.

Восстановление удаленного пользователя Active Directory

Попробуем удалить пользователя AD, а затем восстановить его из корзины AD.

С помощью командлета Get-ADUser выведем значения атрибута пользователя IsDeleted (он пустой).

get-aduser a.novak -Properties *| Select-Object IsDeleted

Теперь удалим учетную запись пользователя:

Remove-ADUser a.novak

атрибут IsDeleted

Чтобы найти удаленную учетную запись пользователя в корзине AD, воспользуйтесь командлетом Get-ADObject с параметром IncludeDeletedObjects:

Get-ADObject -Filter 'Name -like "*novak*"' –IncludeDeletedObjects

Get-ADObject includeDeletedObjects - найти удаленные объекты active directory

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

Проверим значение атрибута IsDeleted, контейнер, в котором находился пользователе перед удалением (LastKnownParent), а также список групп, в которых он состоял:

Get-ADObject -Filter 'Name -like "*novak*"' –IncludeDeletedObjects -Properties *| select-object Name, sAMAccountName, LastKnownParent, memberOf, IsDeleted|fl

Restore-ADObject восстановление удаленного пользователя ad из powershell

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

Get-ADObject –filter {Deleted -eq $True -and ObjectClass -eq "user"} –includeDeletedObjects

Чтобы восстановить учетную запись пользователя, скопируйте значение атрибута ObjectGUID и выполните команду:

Restore-ADObject -Identity ‘3dc33c7c-b912-4a19-b1b7-415c1395a34e’

Либо можно восстановить пользователя по его SAMAccountName:

Get-ADObject -Filter 'SAMAccountName -eq "a.novak"' –IncludeDeletedObjects | Restore-ADObject

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

восстановленный пользователь ad

Также вы можете восстановить удалённый объект из графической консоли Active Directory Administrative Center.

  1. Запустите консоль dsac.exe;
  2. Найдите контейнер Deleted Objects, в нем находятся все удаленные объекты AD;
  3. Щелкните по объекту, который нужно восстановить и выберите Restore (для восстановления в исходный OU), либо Restore to (восстановление в произвольный раздел AD);

восстановление удаленного пользователя в консоли Active Directory Administrative Center

Аналогичным образом можно восстановить в Active Directory удаленную группу, компьютер или контейнер.

Восстановить удаленную группу:

Get-ADObject -Filter { Deleted -eq $True -and ObjectClass -eq 'group' -and Name -like '*Allow*' } –IncludeDeletedObjects| Restore-ADObject –verbose

Восстановить компьютер:

Get-ADObject -Filter { Deleted -eq $True -and ObjectClass -eq 'computer' -and Name -like '*spb-fs02*' } –IncludeDeletedObjects| Restore-ADObject –verbose

восстановление удаленной группы ad

Восстановление удаленной OU и вложенных объектов с PowerShell

Например, у вас на каком-то OU была отключена опция “Protect object from accidental deletion” и вы случайно удалили OU вместе со всеми пользователями, компьютерами и группами.

восстановление удаленного контейнера organizational unit (OU) в AD

Сначала нужно восстановить корневой OU:

Get-ADObject -Filter { Deleted -eq $True -and ObjectClass -eq 'organizationalunit' -and Name -like '*SPB*' } –IncludeDeletedObjects| Restore-ADObject

Затем все вложенные OU:

Get-ADObject -Filter { Deleted -eq $True -and ObjectClass -eq 'organizationalunit' -and LastKnownParent -eq 'OU=SPB,DC=winitpro,DC=ru' } –IncludeDeletedObjects| Restore-ADObject

Теперь можно восстановить все удаленные объекты в этих OU по параметру LastKnownParent (пользователей, компьютеры, группы, контакты):

Get-ADObject -Filter { Deleted -eq $True} –IncludeDeletedObjects -Properties *| Where-Object LastKnownParent -like '*OU=SPB,DC=winitpro,DC=ru'| Restore-ADObject

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