Protect object against accidental deletion в Active Directory при Windows Server 2008

   Когато за пръв път се сблъсках с ADUC (Active Directory Users & Computers) в Server 2008 нещо ми направи впечатление. При създаване на организационна единица (OU – Organizational Unit) има една нова отметка, която гласи: “Protect object against accidental deletion”:

[singlepic=115]

Пробвах да изтрия създаденото OU, но получих съобщение за грешка от тип Access Denied:

[singlepic=114,300]

В първия момент си помислих, че са добавили някой нов атрибут към класа “Organizational Unit”. Но не? Прегледах атрибутите на създаденото OU и не намерих нищо по-особено.

Ключът от палатката…

Всъщност отметката “Protect object against accidental deletion” добавя запис за контрол на достъпа (ACE -Access Control Entry) в списъка за контрол на достъпа (ACL – Access Control List) за конкретното OU. В този запис се казва, че за Everyone действията DELETE и DELETE SUBTREE са забранени:

[singlepic=113]

Това се оказва добра практика, защото на всеки администриращ домейн може да се случи да затрие нещо по грешка. Хубавото тук е, че не се налага да се ровите и да задавате права върху всички OU-та, а всичко е сведено до една отметка, която върши тези неща вместо Вас. Защото преди Server 2008 всичко става ръчно:

Механизмът с отметката “Protect object against accidental deletion” е наличен само когато създавате OU през Active Directory Users & Computers.

За да изтриването OU, което е защитено трябва да махнете отметката. За тази цел в ADUC изберете View->Advanced Features. Щракнете с десния бутон на мишката върху желаното OU -> Properties. Изберете табчето Object и махнете отметката. След това потвърдете с OK. Вече можете да изтриете организационната единица:

[singlepic=112]

Ако създавате OU чрез скрипт (вж. по-надолу) по подразбиране не се добавя въпросният запис в списъка за контрол на достъпа (ACL):

[code]Set objDomain = GetObject(“LDAP://dc=contoso,dc=com”)
Set objOU = objDomain.Create(“organizationalUnit”, “ou=Management”)
objOU.SetInfo
[/code]

С няколко думи – не се променя логиката при създаване на OU чрез скриптинг 🙂
Казвам го не за друго, а защото боравенето с ACE/ACL на обектите в AD чрез скриптове си е бая работа 🙂

Leave a Reply

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