Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Ao contrário dos domínios do Windows NT 4.0, os usuários do Windows 2000 podem ser colocados em qualquer contêiner ou unidade organizacional (UO) em um domínio, bem como a raiz do domínio. Isso significa que os usuários podem estar em vários locais na hierarquia de diretórios. Portanto, você tem duas opções para enumerar usuários:
Enumere os usuários contidos diretamente em um contêiner, UO ou na raiz do domínio:
Associe explicitamente ao objeto container que contém os usuários que você está interessado em enumerar, defina um filtro contendo "user" como a classe usando a propriedade IADsContainer.Filter e use o método IADsContainer::get__NewEnum para enumerar os objetos de usuário.
Essa técnica pode ser usada para enumerar usuários que estão diretamente contidos em um contêiner ou objeto de UO. Se o contêiner contiver outros contêineres que possam conter outros usuários, você deverá vincular a esses contêineres e enumerar recursivamente os usuários nesses contêineres. Se não for necessário manipular os objetos do usuário e só precisar ler propriedades específicas, use a pesquisa profunda descrita na Opção 2.
Como a enumeração retorna ponteiros para objetos ADSI COM que representam cada objeto de usuário, você pode chamar QueryInterface para obter IADs, IADsUsere IADsPropertyList ponteiros de interface para o objeto de usuário. Isso significa que você pode obter ponteiros de interface para cada objeto de usuário enumerado em um contêiner sem ter que vincular explicitamente a cada objeto de usuário. Para executar operações em todos os utilizadores diretamente dentro de um contentor, a enumeração evita a necessidade de se vincular a cada utilizador para chamar os métodos IADs ou IADsUser. Para recuperar propriedades específicas dos usuários, use IDirectorySearch conforme descrito na opção 2.
Realize uma pesquisa profunda por (&(objectClass=user)(objectCategory=person)) para localizar todos os usuários em uma árvore:
Primeiro, vincule-se ao objeto de contêiner onde começar a pesquisa. Por exemplo, para localizar todos os usuários em um domínio, associe-se à raiz do domínio; para localizar todos os usuários na floresta, vincule-se ao catálogo global e pesquise a partir da raiz do GC.
Em seguida, use IDirectorySearch para consultar usando um filtro de pesquisa contendo (&(objectClass=user)(objectCategory=person)) e a preferência de pesquisa de ADS_SCOPE_SUBTREE.
Você pode executar uma pesquisa com uma preferência de pesquisa de ADS_SCOPE_ONELEVEL para limitar a pesquisa ao conteúdo direto do objeto de contêiner ao qual você está vinculado.
IDirectorySearch recupera apenas os valores de propriedades específicas dos usuários. Para recuperar valores, use IDirectorySearch. Para manipular os objetos de usuário retornados de uma pesquisa, ou seja, você deseja usar IADs ou IADsUser métodos, você deve vincular explicitamente a eles. Para fazer isso, especifique distinguishedName como uma das propriedades a serem retornadas da pesquisa e use os nomes distintos retornados para vincular a cada usuário retornado na pesquisa.
Apenas propriedades específicas são recuperadas. Não é possível recuperar todos os atributos sem especificar explicitamente todos os atributos possíveis da classe de usuário.