Корзина в Active Directory на Server 2012 R2

Posted by

Что мы имеем, а это произведенная модернизация с серверной оси Windows на самый последний релиз, а именно Windows , также опираясь на действия заметки модернизирован функциональный уровень домена. Потихоньку читая документацию по новой системе обозначил для себя новые темы которые хотел бы видеть в виде пошаговых практичных заметок, так вот одна из них это «Использование Корзины» в новом домене, вроде как вместо консоли командной строки используется графический пользовательский интерфейс. Теперь процесс удаления объектов Active Directory восстанавливается не так утомительно по сравнению с Windows Server 2008 R2. Вот в этом я сейчас и разберусь на практике.

На заметку: По документации функция «Корзина» для Active Directory также выключена, включив ее однажды отключить будет невозможно. Хотя кто в здравом уме будет такое делать, это же палочка выручалочка в случае чего.

Итак, проверяю текущий уровень леса:

Win + X — Command Prompt (Admin) -

C:\Windows\system32>cd /d %systemroot%\system32\WindowsPowerShell\v1.0\

C:\Windows\System32\WindowsPowerShell\v1.0>powershell.exe

Windows PowerShell

Copyright (C) 2013 Microsoft Corporation. All rights reserved.

PS C:\Windows\System32\WindowsPowerShell\v1.0>

PS C:\Windows\System32\WindowsPowerShell\v1.0> import-module servermanager

PS C:\Windows\System32\WindowsPowerShell\v1.0> import-module activedirectory

PS C:\Windows\System32\WindowsPowerShell\v1.0> get-adforest

  • ApplicationPartitions : {DC=ForestDnsZones,DC=polygon,DC=local,
  • DC=DomainDnsZones,DC=polygon,DC=local}
  • CrossForestReferences : {}
  • DomainNamingMaster : srv-ad.polygon.local
  • Domains : {polygon.local}
  • ForestMode : Windows2012R2Forest
  • GlobalCatalogs : {srv-ad.polygon.local}
  • Name : polygon.local
  • PartitionsContainer : CN=Partitions,CN=Configuration,DC=polygon,DC=local
  • RootDomain : polygon.local
  • SchemaMaster : srv-ad.polygon.local
  • Sites : {Default-First-Site-Name}
  • SPNSuffixes : {}
  • UPNSuffixes : {}

из вывода видно, то мой уровень леса самый последний (Windows2012R2Forest) и ничего повышать не нужно.

А потому можно включить корзину Active Directory все так же как и в прошлый раз через PowerShell:

PS C:\Windows\System32\WindowsPowerShell\v1.0> Enable-ADOptionalFeature -Identity 'CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=polygon,DC=local' -Scope ForestOrConfigurationSet -Target 'polygon.local'

WARNING: Enabling ‘Recycle Bin Feature’ on

‘CN=Partitions,CN=Configuration,DC=polygon,DC=local’ is an irreversible action!

You will not be able to disable ‘Recycle Bin Feature’ on

‘CN=Partitions,CN=Configuration,DC=polygon,DC=local’ if you proceed.

Confirm

Are you sure you want to perform this action?

Performing the operation «Enable» on target «Recycle Bin Feature».

[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help

(default is «Y»): для включения согласно приведенной справки нажимаем клавишу «А».

или же через оснастку именуемую, как Active Directory Administrative Center:

Win + X — Control Panel — Administrative Tools — Active Directory Administrative Center, после слева выбираем текущий домен (Polygon.local) и в правой части панели нажимаем кнопку «Enable Recycle Bin».

После если обратить внимание на оснастку то кнопку Enable Recycle Bin будет затемнена, это значит «Корзина» активирована и в оснастке Active Directory Administrative Center текущего домена (polygon.local) появился новый организационный контейнер (OU=Deleted Objects) в который и будут помещаться удаленные объекты из Active Directory. По аналогии и с Server 2008 R2 они также хранятся 180 дней.

Итак а какие же действия нужно проделать если возникнет ситуация, когда что-то важное будет удалено или по неосторожности, у меня тут кстати несколькими днями ранее была ситуация, не нечаянно удалил OU=IT (галочка защиты от удаления стояла) и себя кстати, проверяя возможность восстановления из корзины — а корзина то не включена. Переведя дух от последующих последствий, я опомнился, что все еще подключен по RDP к домен контроллеру: создаю точно такой же OU и точно такие же учетные записи, пароли дефолтные, группы доступа раздал. Я знаю что это не одно и тоже, а потому мне пришлось в быстром порядке, всем коллегам моего отдела перебить профиля на рабочих станциях посредством утилиты: — User Profile Wizard и разослав SMS по всем что произошло. По итогу, ущерба нет и только после этого я корзину активировал, хотя до сего момента думал что такого уж точно со мной не случится.

Ладно теперь практика:

У меня есть OU = Otdel Sales с тремя учетными записями внутри, удаляю сотрудников и сам организационный контейнер.

PS C:\Windows\System32\WindowsPowerShell\v1.0> dsquery user "OU=Otdel Sales,DC=polygon,DC=local"

«CN=Екатерина Авфорова,OU=Otdel Sales,DC=polygon,DC=local»

«CN=Павел Севостьянов,OU=Otdel Sales,DC=polygon,DC=local»

«CN=Ольга Бузина,OU=Otdel Sales,DC=polygon,DC=local»

PS C:\Windows\System32\WindowsPowerShell\v1.0> dsrm "CN=Екатерина Авфорова,OU=Otdel Sales,DC=polygon,DC=local" -noprompt

dsrm succeeded:CN=Екатерина Авфорова,OU=Otdel Sales,DC=polygon,DC=local

PS C:\Windows\System32\WindowsPowerShell\v1.0> dsrm "CN=Павел Севостьянов,OU=Otdel Sales,DC=polygon,DC=local" -noprompt

PS C:\Windows\System32\WindowsPowerShell\v1.0> dsrm "CN=Ольга Бузина,OU=Otdel Sales,DC=polygon,DC=local" -noprompt

или же:

PS C:\Windows\System32\WindowsPowerShell\v1.0> dsrm "OU=Otdel Sales,DC=polygon,DC=local" -subtree

Are you sure you wish to delete OU=Otdel Sales,DC=polygon,DC=local (Y/N)? y

dsrm failed:OU=Otdel Sales,DC=polygon,DC=local:Access is denied.

type dsrm /? for help.

PS C:\Windows\System32\WindowsPowerShell\v1.0>

(но вот что, если не удалять учетные записи внутри OU, то команда выше успешно удалит их и контейнер:

PS C:\Windows\System32\WindowsPowerShell\v1.0> dsrm "OU=Otdel Sales,DC=polygon,DC=local" -subtree

Are you sure you wish to delete OU=Otdel Sales,DC=polygon,DC=local (Y/N)? Y

dsrm succeeded:OU=Otdel Sales,DC=polygon,DC=local

, а оснастка Active Directory Users and Computers будет показывать что такой контейнер есть, то вот его значок будет помечен желтым треугольником внутри которого восклицательный знак, см. скриншот ниже:

OU удалено, то все еще отображается в Active Directory , а оснастка Active Directory Administrative Center будет показывать что имеется удаленный OU и CN внутри. Вот так вот.

)

странно, а почему ошибка я же все делаю правильно, внимательно посмотрев пришел к выводу, что если:

Win + X — Control Panel — Administrative Tools — Active Directory Users and Computers — View — Advanced Features, после открыв свойства (Properties) OU=Otdel Sales и перейдя на вкладку: Object заметил, что стоит галочка препятствующая простому удалению данного объекта — Protect object from accidental deletion, но вот снимать через оснастку я не буду я хочу разобраться как это сделать через консоль командной строки:

PS C:\Windows\System32\WindowsPowerShell\v1.0> Get-ADOrganizationalUnit -Identity 'OU=Otdel Sales,DC=polygon,DC=local' | Set-ADObject -ProtectedFromAccidentalDeletion:$false -PassThru | Remove-ADOrganizationalUnit -Confirm:$false

Вот то что мне и требовалось.

Теперь же чтобы восстановить удаленные объекты из Active Directory шаги следующие:

Win +X — Control Panel — Administrative Tools — Active Directory Administrative Center, как видно

выбрав текущий домен в левой части polygon.local и контейнер Deleted Objects в котором и находят все удаленные объекты, в моем случае (в рамках этой заметки), это учетные записи и организационный контейнер.

Оснастка просмотра и восстановления удаленных объектов из Корзины

На заметку:

Выделяем все объекты и в правой части нажимаем на кнопку Restore (Восстановить объект), а если нужно восстановить в другое место отличное от ранее имевшее быть, то воспользуемся уже кнопкой Restore To…

мне же в этой заметке будет достаточно кнопки Restore, процедура восстановления проходит мгновенно и уже переключившись в оснастку Active Directory Users and Computer я лицезрею восстановленные учетные записи и OU.

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

Что могу сказать, действительно удобно пользоваться GUI оснасткой, все просто, ведь раньше нужно было использовать для этого дела консоль командной строки, а сейчас такое действо не занимает время и это очень радует, видимо действительно много нового и интересного появилось в Server 2012 R2. Все что меня интересует я постараюсь освятить в виде своих пошаговых заметок на блоге, а пока я прощаюсь и до новых встреч, с уважением автор блога — ekzorchik.