ADSI und Benutzerkontensteuerung
Windows und Windows Server verfügen über die Benutzerkontensteuerung, die Auswirkungen auf Anwendungen hat, die Active Directory-Dienstschnittstellen (ADSI ) verwenden. Insbesondere wurden diese Schnittstellen so konzipiert, dass sie von einem Benutzerkonto mit Administratorrechten auf dem lokalen Computer ausgeführt werden.
Problem
Jedes Mal, wenn eine Anwendung eine Verbindung mit dem Verzeichnis herstellt und versucht, ein ADSI-Objekt zu erstellen, wird das Active Directory-Schema auf Änderungen überprüft. Wenn es sich seit der letzten Verbindung geändert hat, wird das Schema heruntergeladen und in einem Cache auf dem lokalen Computer gespeichert. In Versionen von Windows vor Windows Vista lautete der Standardspeicherort für diesen Cache.
%systemroot%\SchCache\
Anwendungen, die mit Standardkonten (d. h. Nicht-Administratorkonten) ausgeführt werden, haben jedoch keinen Zugriff auf dieses Verzeichnis, und folglich laden Anwendungen, die ADSI-Schnittstellen verwenden, die in diesem Modus ausgeführt werden, das Schema bei jeder Verbindung herunter, was sich auf Durchsatz und Leistung auswirkt.
Lösungen
Einzelbenutzer : Um dieses Problem zu beheben, gibt es neue ADSI-Anbieter-Registrierungssteuerungsschlüssel, die die Registrierungsspeicherorte und Dateispeicherorte für zwischengespeicherte Active Directory-Schemaobjekte bestimmen. Wenn der Registrierungsschlüssel
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\adsi\Cache\PerMachine
ist auf 0 (null) festgelegt, jeder Benutzer verfügt über einen anderen Speicherort für ADSI; Registrierungsschlüssel werden in gespeichert.
HKEY_CURRENT_USER\Software\Microsoft\ADs\Providers\LDAP\
und Cachedateien werden in gespeichert
%LOCALAPPDATA%\Microsoft\Windows\SchCache
Diese Einstellungen sind die Standardeinstellungen auf Computern unter Windows Server 2008 oder Windows Vista.
Mehrbenutzer: Wenn Sie ADSI-Anwendungen auf einem Computer mit vielen Benutzerkonten (z. B. einem Webserver) ausführen, ist es besser, nicht viele Kopien des Active Directory-Schemacaches zu verwenden, die große Mengen an Speicherplatz belegen. Festlegen des Registrierungsschlüssels
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\adsi\Cache\PerMachine
1 (1) rückgängig machen ADSI zum vorherigen Verhalten; alle Active Directory-Schemaobjekte werden an ihren vorherigen Speicherorten gespeichert; der Registrierungsschlüssel befindet sich in
HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP
und die Cachedatei befindet sich in
%systemroot%\SchCache
In diesem Fall sollten Administratorkonten die Anwendung ausführen, wodurch die Schemadatei zur zukünftigen Verwendung durch die weniger privilegierten Benutzer am globalen Speicherort zwischengespeichert wird.