ADSI et contrôle de compte d’utilisateur
Windows et Windows Server ont le contrôle de compte d’utilisateur, qui a des ramifications pour les applications qui utilisent des interfaces de service Active Directory (ADSI). Plus précisément, ces interfaces ont été conçues pour être exécutées par un compte d’utilisateur disposant de privilèges d’administrateur sur l’ordinateur local.
Problème
Chaque fois qu’une application se connecte au répertoire et tente de créer un objet ADSI, le schéma Active Directory est vérifié pour les modifications. S’il a changé depuis la dernière connexion, le schéma est téléchargé et stocké dans un cache sur l’ordinateur local. Dans les versions de Windows antérieures à Windows Vista, l’emplacement par défaut de ce cache était
%systemroot%\SchCache\
Toutefois, les applications exécutées par des comptes standard (autrement dit, non administrateur) n’auront pas accès à ce répertoire et, par conséquent, les applications qui utilisent des interfaces ADSI exécutées dans ce mode téléchargent le schéma sur chaque connexion, ce qui aura un impact sur le débit et les performances.
Solutions
Utilisateur unique : pour résoudre ce problème, il existe de nouvelles clés de contrôle de Registre du fournisseur ADSI qui déterminent les emplacements du Registre et les emplacements des fichiers pour les objets de schéma Active Directory mis en cache. Si la clé de Registre
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\adsi\Cache\PerMachine
est défini sur 0 (zéro), chaque utilisateur aura un emplacement de stockage différent pour ADSI ; les clés de Registre seront stockées dans
HKEY_CURRENT_USER\Software\Microsoft\ADs\Providers\LDAP\
et les fichiers de cache seront stockés dans
%LOCALAPPDATA%\Microsoft\Windows\SchCache
Ces paramètres sont les paramètres par défaut sur les ordinateurs exécutant Windows Server 2008 ou Windows Vista.
Multi-utilisateur : si vous exécutez des applications ADSI sur un ordinateur avec de nombreux comptes d’utilisateur (par exemple, un serveur web), il est préférable de ne pas avoir de nombreuses copies du cache de schéma Active Directory utilisant une grande quantité d’espace disque. Définition de la clé de Registre
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\adsi\Cache\PerMachine
la valeur 1 (un) rétablit ADSI au comportement précédent ; tous les objets de schéma Active Directory seront stockés dans leurs emplacements précédents ; la clé de Registre sera dans
HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP
et le fichier cache sera dans
%systemroot%\SchCache
Dans ce cas, les comptes d’administrateur doivent exécuter l’application, ce qui entraîne la mise en cache du fichier de schéma à l’emplacement global pour une utilisation ultérieure par les utilisateurs les moins privilégiés.