Udostępnij za pośrednictwem


ADSI i kontrola konta użytkownika

Systemy Windows i Windows Server mają kontrola konta użytkownika, która ma konsekwencje dla aplikacji korzystających z interfejsów usługi Active Directory (ADSI). W szczególności te interfejsy zostały zaprojektowane tak, aby były uruchamiane przez konto użytkownika z uprawnieniami administratora na komputerze lokalnym.

problem

Za każdym razem, gdy aplikacja łączy się z katalogiem i próbuje utworzyć obiekt ADSI, schemat usługi Active Directory jest sprawdzany pod kątem zmian. Jeśli schemat został zmieniony od ostatniego połączenia, schemat jest pobierany i przechowywany w pamięci podręcznej na komputerze lokalnym. W wersjach systemu Windows wcześniejszych niż Windows Vista domyślna lokalizacja tej pamięci podręcznej to

%systemroot%\SchCache\

Jednak aplikacje uruchamiane według standardowych (czyli kont innych niż administrator) nie będą miały dostępu do tego katalogu, a w związku z tym aplikacje korzystające z interfejsów ADSI, które są uruchamiane w tym trybie, będą pobierać schemat na każde połączenie, co wpłynie na przepływność i wydajność.

Solutions

pojedynczego użytkownika — aby rozwiązać ten problem, istnieją nowe klucze kontroli rejestru dostawcy ADSI, które określają lokalizacje rejestru i lokalizacje plików dla buforowanych obiektów schematu usługi Active Directory. Jeśli klucz rejestru

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

parametr ma wartość 0 (zero), każdy użytkownik będzie miał inną lokalizację przechowywania dla usługi ADSI; klucze rejestru będą przechowywane w

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

pliki pamięci podręcznej będą przechowywane w

%LOCALAPPDATA%\Microsoft\Windows\SchCache

Te ustawienia są ustawieniami domyślnymi na komputerach z systemem Windows Server 2008 lub Windows Vista.

wieloużytkowników — jeśli używasz aplikacji ADSI na komputerze z wieloma kontami użytkowników (na przykład serwerem sieci Web), zaleca się, aby nie mieć wielu kopii pamięci podręcznej schematu usługi Active Directory pamięci podręcznej z dużą ilością miejsca na dysku. Ustawianie klucza rejestru

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

do 1 (jeden) spowoduje przywrócenie interfejsu ADSI do poprzedniego zachowania; wszystkie obiekty schematu usługi Active Directory będą przechowywane w poprzednich lokalizacjach; klucz rejestru będzie znajdować się w

HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP

plik pamięci podręcznej będzie znajdować się w pliku

%systemroot%\SchCache

W takim przypadku konta administratorów powinny uruchamiać aplikację, co spowoduje buforowanie pliku schematu w lokalizacji globalnej na potrzeby przyszłego użycia przez mniej uprzywilejowanych użytkowników.