Criando e excluindo objetos no Active Directory Domain Services
O procedimento usado para criar e excluir objetos programaticamente nos Serviços de Domínio Active Directory depende da tecnologia de programação usada. Para obter mais informações sobre como criar e excluir objetos nos Serviços de Domínio Active Directory com uma tecnologia de programação específica, consulte os tópicos listados na tabela a seguir.
Tecnologia de programação | Para obter mais informações |
---|---|
Active Directory Service Interfaces | Criando e excluindo objetos |
Protocolo de acesso de diretório leve | Modificando uma entrada de diretório |
System.DirectoryServices | Criar, excluir, renomear e mover objetos |
Criando um objeto
Em geral, os únicos atributos necessários para que um objeto seja criado são os atributos cn e objectClass . No entanto, apenas criar um objeto não o torna necessariamente um objeto funcional. Certos tipos de objetos, como usuários e grupos, têm atributos adicionais necessários para torná-los funcionais. Para obter mais informações sobre como criar tipos específicos de objetos, consulte Criando um usuário e Criando grupos em um domínio.
Windows Server 2003: Quando um objeto da classe de usuário, grupo ou computador é criado em um controlador de domínio que está sendo executado no WWindows Server 2003 ou posterior, o controlador de domínio define automaticamente o atributo sAMAccountName para o objeto como uma cadeia de caracteres exclusiva, se uma não for especificada.
Excluindo um objeto
O servidor do Active Directory executa as seguintes ações quando um objeto é excluído:
O atributo isDeleted do objeto excluído é definido como TRUE. Os objetos com um valor de atributo isDeleted definido como TRUE são chamados de marcas de exclusão.
O objeto excluído é movido para o contêiner Objetos Excluídos para seu contexto de nomenclatura. Se a propriedade object systemFlags contiver o sinalizador 0x02000000, o objeto não será movido para o contêiner Objetos Excluídos. Para obter mais informações sobre como vincular e enumerar o conteúdo do contêiner Objetos Excluídos, consulte Recuperando objetos excluídos.
O contêiner Objetos Excluídos é plano, portanto, todos os objetos residem no mesmo nível dentro do contêiner Objetos Excluídos. Assim, o nome distinto relativo do objeto excluído é alterado para garantir que o nome seja exclusivo dentro do contêiner Objetos Excluídos. Se o nome original tiver mais de 75 caracteres, ele será truncado para 75 caracteres. Os seguintes itens são então anexados ao novo nome:
- Um personagem 0x0A
- A cadeia de caracteres "DEL:"
- A forma de cadeia de caracteres de um GUID exclusivo, como "947e3228-70c9-4311-8b7a-e5c9b5bd4432"
Um exemplo de um nome de objeto excluído é:
Jeff Smith\0ADEL:947e3228-70c9-4311-8b7a-e5c9b5bd4432
A maioria dos valores de atributo para o objeto excluído é removida. Os seguintes atributos são mantidos automaticamente:
- ID do atributo
- attributeSyntax
- distinguishedName
- dNReferenceUpdate
- flatName
- governsID
- groupType
- Tipo de instância
- lDAPDisplayName
- legacyExchangeDN
- mS-DS-CreatorSID
- mSMQOwnerID
- name
- nCName
- objectClass
- objectGUID
- objetoSid
- oMSyntax
- proxiedObjectName
- replPropertyMetaData
- sAMAccountName
- securityIdentifier
- subClasseDe
- systemFlags
- trustAttributes
- trustDirection
- trustPartner
- Tipo de confiança
- userAccountControl
- uSNChanged
- uSNCreated
- quandoCriado
Outros atributos que têm um valor de atributo searchFlags que contém 0x00000008 também são mantidos.
Os seguintes valores de atributo são sempre removidos de um objeto excluído:
- objectCategory
- samAccountType
O descritor de segurança do objeto excluído é mantido e as entradas de controle de acesso herdáveis não são propagadas. O descritor de segurança é mantido como está no momento em que o objeto é excluído.
Os links de e para o objeto excluído são limpos. Isso é executado em segundo plano depois que o objeto é excluído. Se o objeto excluído for restaurado antes que todos os links sejam limpos, um erro será recebido.
Se o objeto for excluído em um controlador de domínio do Windows Server 2003, o atributo lastKnownParent do objeto excluído será definido como o nome distinto do contêiner onde o objeto estava contido quando foi excluído.
O objeto excluído permanece no contêiner Objetos Excluídos por um período de tempo conhecido como tempo de vida da marca de exclusão. Por padrão, o tempo de vida da marca de exclusão é de 60 dias, mas esse valor pode ser alterado pelo administrador do sistema. Depois que o tempo de vida da marca de exclusão expirar, o objeto será removido permanentemente do Serviço de Diretório. Para evitar a perda de uma operação de exclusão, um aplicativo deve executar sincronizações incrementais com mais frequência do que o tempo de vida da marca de exclusão.
O Windows Server 2003 adiciona a capacidade de restaurar objetos excluídos. Para obter mais informações sobre a restauração de objetos excluídos, consulte Restaurando objetos excluídos.
Quando um item é excluído, nenhum dos atributos do objeto pode ser modificado. No Windows Server 2003, é possível modificar o descritor de segurança (o atributo ntSecurityDescriptor ) em um objeto excluído. Isso é para permitir a restauração de objetos quando a pessoa que restaura o objeto não tem permissões de gravação para atributos obrigatórios. Para atualizar o descritor de segurança em um objeto excluído, o chamador deve ter o acesso de controle "Reanimar Tombstone" no contexto de nomenclatura, além de WRITE_DAC regular e acesso WRITE_OWNER. Mesmo que o descritor de segurança seja restritivo, o administrador pode primeiro assumir a propriedade do objeto, supondo que o administrador tenha o privilégio SE_TAKE_OWNERSHIP_NAME e, em seguida, modificar o descritor de segurança. Para fazer isso, use a função ldap_modify_ext_s com o controle LDAP_SERVER_SHOW_DELETED_OID. A lista de modificação deve conter uma única substituição de atributo para o atributo ntSecurityDescriptor .