пятница, 12 апреля 2013 г.

AdminCount=1 и AdminSDHolder

Непослушные пользователи, AdminCount=1 и AdminSDHolder.

Я ранее добавлял стартовый скрипт для записи в описание компов - какой пользователь логинился и когда. Позже добавил в этот скрипт возможность записи в объект "пользователь" на какой комп логинился и когда. 


Так вот какая штука: у части пользователей всё хорошо и в описание пишется что нужно. А у другой части - нет. В чём косяк?..я стал искать причину. И нашёл!
Открыл учётку одного из таких пользователей в ADUC'е. Во вкладке "Редактор атрибутов" в глаза кинулся параметр "admincount = 1"... Как оказалось - в точку. Этот параметр имеет значение "1", если пользователь входит в одну из групп, защищаемых ActiveDirectory от изменений параметров безопасности (от делегирования). Защитой занят процесс AdminSDHolder: раз в час фоновая задача SAM проходит по всем объектам c admincount=1 и восстанавливает значения безопасности на свои (от объекта AdminSDHolder).

AdminSDHolder - это объект-контейнер в разделе каталога домена CN=AdminSDHolder, CN=System,<Domain DN> - например, CN=AdminSDHolder, CN=System, DC=microsoft, DC=com.

Почему так получилось в моем случае: ранее учётки были добавлены в защищаемые группы, а позже убраны из этих групп. А в AD почему то параметр admincount не меняется обратно, а так и остается =1.

Описание этой особой защиты на osp.ru на русском языке.

Решение таково:
1. Проверяем, входит ли пользователь ещё в защищаемую группу
     а) вручную во вкладке "Член групп" в объекте пользователь
     б) LDAP запросом
2. Меняем значение admincount на 0
3. Разрешаем наследовать параметры безопасности на владке "безопасность" объекта пользователь. Т.е. ставим соответствующую галочку)

PowerShell ldap-запрос на защищённые группы:
import-module activedirectory
get-adgroup -ldapfilter "(objectcategory=group) (admincount=1)"

PowerShell ldap-запрос на защищённых пользователей:
import-module activedirectory
get-aduser -ldapfilter "(objectcategory=person) (admincount=1)"

Источник: здесь

2 комментария:

  1. Когда же вы уже научитесь говорить и "Бе", если сказали "А"???!!!
    Где "PowerShell ldap-запрос" ???!!!

    ОтветитьУдалить
    Ответы
    1. внимательно статью читайте - последние строки:
      PowerShell ldap-запрос на защищённых пользователей:
      import-module activedirectory
      get-aduser -ldapfilter "(objectcategory=person) (admincount=1)"

      Удалить