Что мы имеем, а это произведенная модернизация с серверной оси Windows на самый последний релиз, а именно Windows Server 2012 R2, также опираясь на действия заметки модернизирован функциональный уровень домена. Потихоньку читая документацию по новой системе обозначил для себя новые темы которые хотел бы видеть в виде пошаговых практичных заметок, так вот одна из них это «Использование Корзины» в новом домене, вроде как вместо консоли командной строки используется графический пользовательский интерфейс. Теперь процесс удаления объектов 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 будет показывать что такой контейнер есть, то вот его значок будет помечен желтым треугольником внутри которого восклицательный знак, см. скриншот ниже:
, а оснастка 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.