ADSI 및 사용자 계정 컨트롤

Windows 및 Windows Server에는 ADSI(Active Directory 서비스 인터페이스)를 사용하는 애플리케이션에 대한 파급 효과가 있는 사용자 계정 컨트롤이 있습니다. 특히 이러한 인터페이스는 로컬 컴퓨터에서 관리자 권한이 있는 사용자 계정에 의해 실행되도록 설계되었습니다.

문제

애플리케이션이 디렉터리에 연결하고 ADSI 개체를 만들려고 할 때마다 Active Directory 스키마 에서 변경 내용을 확인합니다. 마지막 연결 이후 변경된 경우 스키마가 다운로드되어 로컬 컴퓨터의 캐시에 저장됩니다. Windows Vista 이전의 Windows 버전에서 이 캐시의 기본 위치는 다음과 같습니다.

%systemroot%\SchCache\

그러나 표준(즉, 관리자가 아닌) 계정으로 실행되는 애플리케이션은 이 디렉터리에 액세스할 수 없으므로 이 모드에서 실행되는 ADSI 인터페이스를 사용하는 애플리케이션은 모든 연결에서 스키마를 다운로드하여 처리량 및 성능에 영향을 줍니다.

솔루션

단일 사용자 - 이 문제를 resolve 위해 캐시된 Active Directory 스키마 개체의 레지스트리 위치 및 파일 위치를 결정하는 새 ADSI 공급자 레지스트리 제어 키가 있습니다. 레지스트리 키인 경우

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

는 0으로 설정되고 각 사용자는 ADSI에 대해 다른 스토리지 위치를 갖게 됩니다. 레지스트리 키는 에 저장됩니다.

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

및 캐시 파일은 에 저장됩니다.

%LOCALAPPDATA%\Microsoft\Windows\SchCache

이러한 설정은 Windows Server 2008 또는 Windows Vista를 실행하는 컴퓨터의 기본 설정입니다.

다중 사용자 - 많은 사용자 계정(예: 웹 서버)이 있는 컴퓨터에서 ADSI 애플리케이션을 실행하는 경우 많은 양의 디스크 공간을 사용하여 Active Directory 스키마 캐시의 복사본을 많이 포함하지 않는 것이 좋습니다. 레지스트리 키 설정

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

1(1)은 ADSI를 이전 동작으로 되돌리기. 모든 Active Directory 스키마 개체는 이전 위치에 저장됩니다. 레지스트리 키는 에 있습니다.

HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP

캐시 파일이 에 있습니다.

%systemroot%\SchCache

이 경우 관리자 계정은 애플리케이션을 실행해야 하며, 이로 인해 나중에 권한이 낮은 사용자가 사용할 수 있도록 스키마 파일이 전역 위치에 캐시됩니다.