Восстановление удаленных пользователей (объектов) Active Directory

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

Когда объект удаляется из каталога Active Directory, он физически не удаляются из базы, о помечается логически удаленным (атрибут isDeleted = true). В течении 180 дней (значение по-умолчанию, которое задается в атрибуте домена msDS-deletedObjectLifetime), удаленный объект можно восстановить.

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

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

Начиная с функционального уровня домена Windows Server 2008 R2, в Active Directory можно включить корзину (Active Directory Recycle Bin). Такая корзина для удаленных объектов существенно упрощает восстановление объектов в AD, без потери атрибутов и членства в группах.

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

Проверить, включена ли корзина в вашем лесу AD можно с помощью PowerShell (по умолчанию AD Recycle Bin отключена и включается только вручную Enterprise администратором)

Проверяем, что уровень леса AD не ниже Windows2008R2Forest:

Get-ADForest |Select-Object forestmode

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

Эта и последующие командлеты требует наличие установленного модуля Active для Directory PowerShell.

Проверить, включена ли AD Recycle Bin в лесу:

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

Если значение EnabledScopes не пустое, значит в вашем домене корзина Active Directory уже включена. В этом случае переходите к разделу статьи, описывающему восстановление удаленных объектов из корзины AD.

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

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

Здесь нужно понимать, что не нужно включать корзину AD после того, как вы случайно удалили, например, пользователя AD. Это сделает только хуже, т.к. корзина включается только вручную администратором на уровне леса, это однократное, необратимое (!!) изменение в схему AD, при котором все ранее удаленные объекты очищаются.

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

Включить Active Directory Recycle Bin можно с помощью команды Enable-ADOptionalFeature:

Enable-ADOptionalFeature "Recycle Bin Feature" -Scope ForestOrConfigurationSet -Target "winitpro.ru"

Или, еще проще, из графической консоли Active Directory Administrative Center ( dsac.exe ). Запустите консоль ADAC, подключитесь к корневому домену, щелкните по имени домена и выберите Enable Recycle Bin.

Включить корзину Active Directory

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

Рассмотрим на простом примере, как восстановить удаленный объект из корзины Active Directory. Например, попробуем удалить учетную запись пользователя, а затем восстановить его из корзины AD.

После того, как корзина AD включена, все удаляемые объекты перемещаются в специальный скрытый контейнер Deleted Objects (не отображается в обычной mmc оснастке ADUC). Найдите этот контейнер в консоли Active Directory Administrative Center ( dsac.exe ).

Контейнер удаленных объектов в Active Directory

Здесь отображаются все удаленные объекты, включая пользователей, компьютеры, контакты, группы и OU. Здесь указаны также дата удаления и исходный OU (last know parent).

Чтобы восстановить объект, щелкните по нему и выберите Restore (для восстановления в исходный OU), либо Restore to (восстановление в произвольный раздел AD).

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

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

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

С помощью командлета 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, название исходного OU, в котором находился пользователь перед удалением (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 (dsa.msc) и проверьте, что учетная запись пользователя была восстановлена в тот же самый OU, где она находилась до удаления. После восстановления учетная запись пользователя будет отключена. Включите ее и сбросьте пароль, перед тем как отдавать ее пользователю.

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

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

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 была отключена опция Protect object from accidental deletion и вы случайно удалили OU вместе со всеми вложенными пользователями, компьютерами и группами.

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

Корзина AD не позволяет автоматически восстановить объект вместе с иерархией. Удаленную OU можно восстановить вместе со всеми вложенными объектами с помощью PowerShell скрипта:

  1. Сначала нужно восстановить корневой OU: Get-ADObject -Filter { Deleted -eq $True -and ObjectClass -eq 'organizationalunit' -and Name -like '*SPB*' } –IncludeDeletedObjects| Restore-ADObject
  2. Затем все вложенные OU: Get-ADObject -Filter { Deleted -eq $True -and ObjectClass -eq 'organizationalunit' -and LastKnownParent -eq 'OU=SPB,DC=winitpro,DC=ru' } –IncludeDeletedObjects| Restore-ADObject
  3. Теперь можно восстановить все удаленные объекты в этих OU по параметру LastKnownParent (пользователей, компьютеры, группы, контакты): Get-ADObject -Filter { Deleted -eq $True} –IncludeDeletedObjects -Properties *| Where-Object LastKnownParent -like '*OU=SPB,DC=winitpro,DC=ru'| Restore-ADObject

Как восстановить удаленного пользователя если корзина AD отключена?

Если корзина Active Directory в вашем лесу отключена, можно восстановить удаленные объекты с помощью утилиты ldp.exe (используется несложная, но громоздкая процедура) или с помощью официальной утилиты adrestore.exe от Microsoft (самый простой и быстрый вариант).

  1. Скачайте архив с утилитой AdRestore (https://learn.microsoft.com/en-us/sysinternals/downloads/adrestore) и распакуйте на контроллере домена
  2. Откройте командную строку с правами администратора и выведите список удаленных объектов в домене: .\adrestore64.exe
  3. Чтобы вывести информацию о конкретном удалённом пользователе, укажите его имя: .\adrestore64.exe "Anton Grey" adrestore.exe вывести список удаленных обьектов в AD
  4. Чтобы восстановить объект, скопируйте его GUID и выполните команду: .\adrestore64.exe -r GUID adrestore: восстаовить удаленный объект AD, если корзина не включенаvosstanovit-obekt
  5. Подтвердите восстановление объекта: y
  6. Проверьте, что пользователь был восстановлен в исходную OU: Get-ADUser -Filter {cn -eq "Anton Grey"} Пользователь AD отключен после восстановления
  7. Учетная запись пользователя после восстановления отключена и пароль не задан. Нужно сбросить пароль пользователя и включить учетку:
    Set-ADAccountPassword a.grey -Reset
    Get-ADUser a.grey| Enable-ADAccount

Set-ADAccountPassword сбросить пароль пользователя домена

При таком способе восстановления (в отличии от способа с AD Recycle Bin), значения большинства атрибутов пользователя (включая группы, в которых он состоял) будут потеряны. Останутся только базовые атрибуты, такие как GUID, SID, CN и т.д.

Если вам нужно восстановить удаленный объект со всеми атрибутами, потребуется более сложная процедура восстановления резервной копии AD. Используется сценарий авторитетного восстановления объекта из system state backup с помощью ntdsutil .

Наличие корзины существенно упрощает восстановление случайно удаленных учетных записей в AD. Однако AD Recycle Bin не заменяет полноценное резервное копирование базы AD.


Предыдущая статья Следующая статья


Комментариев: 17 Оставить комментарий

Оставить комментарий

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

Я не робот( Обязательно отметьте)