次の方法で共有


ADSI とユーザー アカウント制御

Windows と Windows Server にはユーザー アカウント制御 されており、Active Directory サービス インターフェイス (ADSI) を使用するアプリケーションに影響があります。 具体的には、これらのインターフェイスは、ローカル コンピューターの管理者特権を持つユーザー アカウントによって実行されるように設計されています。

問題の

アプリケーションがディレクトリに接続し、ADSI オブジェクトの作成を試みるたびに、Active Directory スキーマ で変更が確認されます。 前回の接続以降に変更された場合は、スキーマがダウンロードされ、ローカル コンピューター上のキャッシュに格納されます。 Windows Vista より前のバージョンの Windows では、このキャッシュの既定の場所は

%systemroot%\SchCache\

ただし、標準 (つまり、管理者以外の) アカウントで実行されるアプリケーションは、このディレクトリにアクセスできません。そのため、このモードで実行される ADSI インターフェイスを使用するアプリケーションは、すべての接続でスキーマをダウンロードするため、スループットとパフォーマンスに影響します。

ソリューション

シングル ユーザー - この問題を解決するために、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 を実行しているコンピューターの既定の設定です。

マルチユーザー - 多数のユーザー アカウント (Web サーバーなど) を持つコンピューターで ADSI アプリケーションを実行している場合は、大量のディスク領域を使用して、Active Directory スキーマ キャッシュのコピーを多数持たないことをお勧めします。 レジストリ キーの設定

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

を 1 に設定すると、ADSI は以前の動作に戻ります。すべての Active Directory スキーマ オブジェクトは、以前の場所に格納されます。レジストリ キーは

HKEY_LOCAL_MACHINE\Software\Microsoft\ADs\Providers\LDAP

キャッシュ ファイルは次の値になります。

%systemroot%\SchCache

この場合、管理者アカウントはアプリケーションを実行する必要があります。これにより、スキーマ ファイルがグローバルな場所にキャッシュされ、特権の低いユーザーが将来使用できるようになります。