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 war der Standardspeicherort für diesen Cache.

%systemroot%\SchCache\

Anwendungen, die über Standardkonten (d. h. Konten ohne Administratorrechte) ausgeführt werden, haben jedoch keinen Zugriff auf dieses Verzeichnis, und daher laden Anwendungen, die ADSI-Schnittstellen verwenden, die in diesem Modus ausgeführt werden, das Schema für jede Verbindung herunter, was sich auf Durchsatz und Leistung auswirken wird.

Lösungen

Einzelner Benutzer: Um dieses Problem zu beheben, gibt es neue Registrierungsschlüssel des ADSI-Anbieters, die die Registrierungs- 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 hat 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, auf denen Windows Server 2008 oder Windows Vista ausgeführt wird.

Mehrere Benutzer: Wenn Sie ADSI-Anwendungen auf einem Computer mit vielen Benutzerkonten (z. B. einem Webserver) ausführen, ist es vorzuziehen, nicht über viele Kopien des Active Directory-Schemacaches zu verfügen, die große Mengen an Speicherplatz auf dem Datenträger nutzen. Festlegen des Registrierungsschlüssels

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

bei 1 (eins) wird ADSI auf das vorherige Verhalten zurückverwendet. alle Active Directory-Schemaobjekte werden an ihren vorherigen Speicherorten gespeichert. der Registrierungsschlüssel in

HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP

und die Cachedatei in

%systemroot%\SchCache

In diesem Fall sollten Administratorkonten die Anwendung ausführen, wodurch die Schemadatei zur zukünftigen Verwendung durch die Benutzer mit geringeren Berechtigungen am globalen Speicherort zwischengespeichert wird.