Поделиться через


Создание и удаление объектов в службах домен Active Directory

Процедура, используемая для программного создания и удаления объектов в службах домен Active Directory, зависит от используемой технологии программирования. Дополнительные сведения о создании и удалении объектов в службах домен Active Directory с определенной технологией программирования см. в разделах, перечисленных в следующей таблице.

Технология программирования Для получения дополнительных сведений
Интерфейсы служб Active Directory Создание и удаление объектов
Упрощенный протокол доступа к каталогам Изменение записи каталога
System.DirectoryServices Создание, удаление, переименование и перемещение объектов

 

Создание объекта

Как правило, единственными атрибутами, необходимыми для создания объекта, являются атрибуты cn и objectClass . Просто создание объекта не обязательно делает его функциональным объектом. Некоторые типы объектов, например пользователи и группы, имеют дополнительные обязательные атрибуты, чтобы сделать их функциональными. Дополнительные сведения о создании определенных типов объектов см. в статье "Создание пользователей и создание групп в домене".

Windows Server 2003: когда объект пользователя, группы или класса компьютера создается на контроллере домена, работающем на WWindows Server 2003 или более поздней версии, контроллер домена автоматически устанавливает атрибут sAMAccountName для объекта в уникальную строку, если он не указан.

Удаление объекта

Сервер Active Directory выполняет следующие действия при удалении объекта:

  • Атрибут isDeleted удаленного объекта имеет значение TRUE. Объекты со значением атрибута isDeleted, равным TRUE, называются камнями.

  • Удаленный объект перемещается в контейнер удаленных объектов для контекста именования. Если свойство object SystemFlags содержит флаг 0x02000000, объект не перемещается в контейнер удаленных объектов. Дополнительные сведения о привязке и перечислении содержимого контейнера удаленных объектов см. в разделе "Извлечение удаленных объектов".

  • Контейнер удаленных объектов неструктурирован, поэтому все объекты находятся на одном уровне в контейнере удаленных объектов. Таким образом, относительное различающееся имя удаленного объекта изменяется, чтобы убедиться, что имя уникально в контейнере удаленных объектов. Если исходное имя больше 75 символов, оно усечено до 75 символов. Затем к новому имени добавляются следующие элементы:

    1. Символ 0x0A
    2. Строка "DEL:"
    3. Строка уникального GUID, например "947e3228-70c9-4311-8b7a-e5c9b5bd4432"

    Примером имени удаленного объекта является:

    Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
    
  • Большинство значений атрибутов для удаленного объекта удаляются. Следующие атрибуты сохраняются автоматически.

    • attributeID
    • attributeSyntax
    • различающееся имя
    • dNReferenceUpdate
    • flatName
    • governsID
    • groupType
    • instanceType
    • lDAPDisplayName
    • Legacyexchangedn
    • mS-DS-CreatorSID
    • mSMQOwnerID
    • name
    • nCName
    • Objectclass
    • Objectguid
    • objectSid
    • oMSyntax
    • proxiedObjectName
    • replPropertyMetaData
    • sAMAccountName
    • securityIdentifier
    • subClassOf
    • systemFlags
    • trustAttributes
    • trustDirection
    • trustPartner
    • trustType
    • userAccountControl
    • Usnchanged
    • uSNCreated
    • whenCreated

    Другие атрибуты, имеющие значение атрибута searchFlags , содержащее 0x00000008, также сохраняются.

    Следующие значения атрибутов всегда удаляются из удаленного объекта:

    • objectCategory
    • samAccountType
  • Дескриптор безопасности удаленного объекта сохраняется и не распространяется наследуемые записи управления доступом. Дескриптор безопасности сохраняется как во время удаления объекта.

  • Ссылки на удаленный объект и из нее очищаются. Это выполняется в фоновом режиме после удаления объекта. Если удаленный объект восстанавливается до очистки всех ссылок, будет получено сообщение об ошибке.

  • Если объект удаляется на контроллере домена Windows Server 2003, то для атрибута lastKnownParent удаленного объекта присваивается различающееся имя контейнера, в котором объект содержался при удалении.

Удаленный объект остается в контейнере "Удаленные объекты" в течение определенного периода времени, известного как время существования могилы. По умолчанию время существования могилы составляет 60 дней, но это значение можно изменить системным администратором. После истечения срока существования могилы объект окончательно удаляется из службы каталогов. Чтобы избежать отсутствия операции удаления, приложение должно выполнять добавочные синхронизации чаще, чем время существования могилы.

Windows Server 2003 добавляет возможность восстановления удаленных объектов. Дополнительные сведения о восстановлении удаленных объектов см. в разделе "Восстановление удаленных объектов".

При удалении элемента ни один из атрибутов объекта не может быть изменен. В Windows Server 2003 можно изменить дескриптор безопасности ( атрибут ntSecurityDescriptor ) в удаленном объекте. Это позволяет восстановить объекты, когда пользователь, восстанавливающий объект, не имеет разрешений на запись в обязательные атрибуты. Чтобы обновить дескриптор безопасности для удаленного объекта, вызывающий объект должен иметь право управления доступом "Reanimate Tombstone" в контексте именования в дополнение к обычным WRITE_DAC и WRITE_OWNER доступа. Даже если дескриптор безопасности является строгим, администратор может сначала взять на себя ответственность за объект, предполагая, что администратор имеет SE_TAKE_OWNERSHIP_NAME привилегии, а затем изменить дескриптор безопасности. Для этого используйте функцию ldap_modify_ext_s с элементом управления LDAP_SERVER_SHOW_DELETED_OID. Список изменений должен содержать одну замену атрибута для атрибута ntSecurityDescriptor .