ADSI e controllo dell'account utente

Windows e Windows Server dispongono di controllo dell'account utente, con ramificazioni per le applicazioni che usano le interfacce del servizio Active Directory (ADSI). In particolare, queste interfacce sono state progettate per essere eseguite da un account utente con privilegi di amministratore nel computer locale.

Problema

Ogni volta che un'applicazione si connette alla directory e tenta di creare un oggetto ADSI, viene verificata la presenza di modifiche dello schema di Active Directory. Se è stata modificata dall'ultima connessione, lo schema viene scaricato e archiviato in una cache nel computer locale. Nelle versioni di Windows precedenti a Windows Vista, il percorso predefinito per questa cache era

%systemroot%\SchCache\

Tuttavia, le applicazioni eseguite da account standard (ovvero non amministratori) non avranno accesso a questa directory e di conseguenza le applicazioni che usano interfacce ADSI eseguite in questa modalità scaricheranno lo schema in ogni connessione, che influirà sulla velocità effettiva e sulle prestazioni.

Soluzioni

Singolo utente: per risolvere questo problema, sono disponibili nuove chiavi di controllo del Registro di sistema del provider ADSI che determinano i percorsi del Registro di sistema e i percorsi dei file per gli oggetti schema di Active Directory memorizzati nella cache. Se la chiave del Registro di sistema

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

è impostato su 0 (zero), ogni utente avrà un percorso di archiviazione diverso per ADSI; Le chiavi del Registro di sistema verranno archiviate in

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

e i file della cache verranno archiviati in

%LOCALAPPDATA%\Microsoft\Windows\SchCache

Queste impostazioni sono le impostazioni predefinite nei computer che eseguono Windows Server 2008 o Windows Vista.

Multiutente : se si eseguono applicazioni ADSI in un computer con molti account utente (ad esempio, un server Web), è preferibile non avere molte copie della cache dello schema di Active Directory usando grandi quantità di spazio su disco. Impostazione della chiave del Registro di sistema

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

su 1 (uno) ripristina ad ADSI con il comportamento precedente; tutti gli oggetti Schema di Active Directory verranno archiviati nelle posizioni precedenti. La chiave del Registro di sistema sarà in

HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP

e il file della cache sarà in

%systemroot%\SchCache

In questo caso, gli account amministratore devono eseguire l'applicazione, causando la memorizzazione nella cache del file di schema nel percorso globale per un uso futuro da parte degli utenti con privilegi inferiori.