При удалении любого объекта в 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
Проверьте, что корзина AD включена для вашего домена (по умолчанию она отключена):
Get-ADOptionalFeature “Recycle Bin Feature” | select-object name,EnabledScopes
Если значение EnabledScopes не пустое, значит в вашем домене корзина 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’
Восстановление удаленного пользователя Active Directory
Попробуем удалить пользователя AD, а затем восстановить его из корзины AD.
С помощью командлета Get-ADUser выведем значения атрибута пользователя IsDeleted (он пустой).
get-aduser a.novak -Properties *| Select-Object IsDeleted
Теперь удалим учетную запись пользователя:
Remove-ADUser a.novak
Чтобы найти удаленную учетную запись пользователя в корзине AD, воспользуйтесь командлетом Get-ADObject с параметром IncludeDeletedObjects:
Get-ADObject -Filter 'Name -like "*novak*"' –IncludeDeletedObjects
Как вы видите, пользователь нашелся в контейнере Deleted Objects.
Проверим значение атрибута IsDeleted, контейнер, в котором находился пользователе перед удалением (LastKnownParent), а также список групп, в которых он состоял:
Get-ADObject -Filter 'Name -like "*novak*"' –IncludeDeletedObjects -Properties *| select-object Name, sAMAccountName, LastKnownParent, memberOf, IsDeleted|fl
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, где она находилась до удаления.
Также вы можете восстановить удалённый объект из графической консоли Active Directory Administrative Center.
- Запустите консоль dsac.exe;
- Найдите контейнер Deleted Objects, в нем находятся все удаленные объекты AD;
- Щелкните по объекту, который нужно восстановить и выберите Restore (для восстановления в исходный OU), либо Restore to (восстановление в произвольный раздел AD);
Аналогичным образом можно восстановить в 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
Восстановление удаленной OU и вложенных объектов с PowerShell
Например, у вас на каком-то OU была отключена опция “Protect object from accidental deletion” и вы случайно удалили OU вместе со всеми пользователями, компьютерами и группами.
Сначала нужно восстановить корневой 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