Acessando e manipulando dados com ADSI

Todos os objetos têm propriedades. Todos os objetos COM da ADSI (Active Directory Service Interface) têm uma ou mais interfaces com métodos que recuperam as propriedades do objeto de diretório que o objeto COM representa. Há várias maneiras de ler as propriedades de um objeto:

  • Obter uma propriedade específica por nome: A interface de IADs tem dois métodos IADs::Get e IADs::GetEx para ler uma propriedade específica. Cada objeto ADSI COM tem uma interface IADs .
  • Obter uma lista especificada de propriedades: A interface IDirectoryObject tem o método IDirectoryObject::GetObjectAttributes que permite especificar uma lista contendo os nomes das propriedades a serem lidas e retorna uma matriz de estruturas contendo os valores de propriedade solicitados.
  • Enumerar todas as propriedades no objeto: A interface IADsPropertyList permite enumerar todas as propriedades em um objeto.
  • Obter propriedades especiais: As interfaces de automação (IADs*) têm métodos de propriedade que permitem obter propriedades especiais que não são armazenadas em um objeto. Ou os métodos de propriedade podem permitir que você obtenha uma propriedade de objeto em um formato de dados diferente do tipo de dados real armazenado. Por exemplo, a interface de IADs tem métodos de propriedade como IADs::get_Name, que recupera o nome distinto relativo (RDN) de um objeto; IADs::get_Class, que recupera a classe de um objeto, e IADs::get_Parent, que recupera o ADsPath para o pai do objeto.

O ADSI permite que você armazene em cache as propriedades localmente depois que elas forem lidas do servidor de diretório. Isso permite que você tenha a opção de ler as propriedades do cache de propriedades local ou recuperar as propriedades diretamente do servidor de diretório. O ADSI também tem métodos para atualizar o cache, bem como especificar se todas as propriedades de um objeto são armazenadas em cache ou apenas aquelas especificadas.

Depois de recuperar uma propriedade, você lê seu valor. O tipo de dados de uma propriedade depende da definição da propriedade (também conhecida como atributo) no esquema do Active Directory. Para cada tipo de propriedade que pode existir no Active Directory, há um objeto attributeSchema no esquema do Active Directory. Um objeto attributeSchema define as características do atributo. Uma dessas características é a sintaxe do atributo, que determina o tipo de dados dos valores do atributo. Para obter mais informações, consulte Características de atributos e sintaxes para atributos do Active Directory.

As interfaces de automação (IADs*) retornam um valor de propriedade como um VARIANT ou um ponteiro para uma interface de automação em um objeto COM que representa a propriedade. As interfaces IDirectoryObject e IDirectorySearch retornam uma propriedade como um ponteiro para uma estrutura que contém um valor de propriedade digitado ou um ponteiro para uma cadeia de caracteres de bytes. Além disso, IDirectoryObject e IDirectorySearch recuperam propriedades diretamente do servidor de diretório em vez de usar um cache de propriedades local.

Esta seção descreve os seguintes tópicos: