Compartilhar via


ADSI e Controle de Conta de Usuário

O Windows e o Windows Server têm o Controle de Conta de Usuário, que tem ramificações para aplicativos que usam ADSI (Interfaces de Serviço do Active Directory). Especificamente, essas interfaces foram projetadas para serem executadas por uma conta de usuário com privilégios de administrador no computador local.

Problema

Toda vez que um aplicativo se conecta ao diretório e tenta criar um objeto ADSI, o esquema do Active Directory é verificado quanto a alterações. Se ele tiver sido alterado desde a última conexão, o esquema será baixado e armazenado em um cache no computador local. Em versões do Windows anteriores ao Windows Vista, o local padrão para esse cache era

%systemroot%\SchCache\

No entanto, os aplicativos executados por contas padrão (ou seja, não administradoras) não terão acesso a esse diretório e, consequentemente, os aplicativos que usam interfaces ADSI executadas nesse modo baixarão o esquema em cada conexão, o que afetará a taxa de transferência e o desempenho.

Soluções

Usuário único - Para resolver esse problema, há novas chaves de controle do Registro do Provedor ADSI que determinam os locais do Registro e os locais dos arquivos para objetos de esquema do Active Directory armazenados em cache. Se a chave do Registro

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\adsi\Cache\PerMachine

é definido como 0 (zero), cada usuário terá um local de armazenamento diferente para ADSI; As chaves do Registro serão armazenadas em

HKEY_CURRENT_USER\Software\Microsoft\ADs\Providers\LDAP\

e os arquivos de cache serão armazenados em

%LOCALAPPDATA%\Microsoft\Windows\SchCache

Essas configurações são as configurações padrão em computadores que executam o Windows Server 2008 ou o Windows Vista.

Multiusuário - Se você estiver executando aplicativos ADSI em um computador com muitas contas de usuário (por exemplo, um servidor Web), é preferível não ter muitas cópias do cache do Esquema do Active Directory usando grandes quantidades de espaço em disco. Definindo a chave do Registro

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\adsi\Cache\PerMachine

a 1 (um) reverterá ADSI para o comportamento anterior; todos os objetos do Esquema do Active Directory serão armazenados em seus locais anteriores; a chave do Registro estará em

HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP

e o arquivo de cache estará em

%systemroot%\SchCache

Nesse caso, as contas de administrador devem executar o aplicativo, o que fará com que o arquivo de esquema seja armazenado em cache no local global para uso futuro pelos usuários menos privilegiados.