При видаленні будь-якого об’єкта в Active Directory (користувача, групи, комп’ютера або OU), ви можете відновити його. У цій статті ми розглянемо, як відновити віддалений об’єкт в AD за допомогою PowerShell і графічних інструментів.

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

За замовчуванням в перебігу 180 днів (визначається в атрибуті домену msDS-deletedObjectLifetime) Ви можете відновити віддалений об’єкт. Якщо даний термін пройшов, об’єкт все ще залишається в контейнері Deleted Objects, але більшість його атрибутів і зв’язків очищаються (Recycled Object). Після закінчення періоду надгробний камінь (За замовчуванням також 180 днів, але можна збільшити) об’єкт повністю видаляється з AD автоматичним процесом очищення і не може бути відновлений (можна відновити тільки їх резервної копії контролера домен AD).

Корзина AD (Кошик Active Directory)

AD Кошик для сміття доступна в 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,EnabledScope

якщо значення EnabledScope не порожнє, значить у вашому домені кошик 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

Як ви бачите, користувач знайшовся в контейнері Видалені об’єкти.

Перевіримо значення атрибута 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.

  1. запустіть консоль dsac.exe;
  2. Знайдіть контейнер Видалені об’єкти, В ньому знаходяться всі віддалені об’єкти AD;
  3. Клацніть по об’єкту, який потрібно відновити і виберіть Відновлювати (Для відновлення в вихідний OU), або Відновити до (Відновлення в довільний розділ 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 була відключена опція “Захистіть об’єкт від випадкового видалення“І ви випадково видалили 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

Leave a Reply

Your email address will not be published. Required fields are marked *