次の方法で共有


Ntdsutil.exeを使用して Active Directory で LDAP ポリシーを表示および設定する

この記事では、Ntdsutil.exe ツールを使用してライトウェイト ディレクトリ アクセス プロトコル (LDAP) ポリシーを管理する方法について説明します。

元の KB 番号: 315071

まとめ

ドメイン コントローラーがサービス レベルの保証をサポートできるようにするには、多くの LDAP 操作の操作制限を指定する必要があります。 これらの制限により、特定の操作がサーバーのパフォーマンスに悪影響を与えるのを防ぐことができます。 また、一部の種類の攻撃に対するサーバーの回復性も向上します。

LDAP ポリシーは、 queryPolicy クラスのオブジェクトを使用して実装されます。 クエリ ポリシー オブジェクトは、構成の名前付けコンテキストのディレクトリ サービス コンテナーの子であるクエリ ポリシー コンテナーに作成できます。 たとえば、cn=Query-Policies、cn=Directory Service、cn=Windows NT、cn=Services 構成の名前付けコンテキスト

LDAP 管理の制限

LDAP 管理の制限は次のとおりです。

  • InitRecvTimeout - この値は、ドメイン コントローラーが新しい接続を受信した後、クライアントが最初の要求を送信するのをドメイン コントローラーが待機する最大時間を秒単位で定義します。 クライアントがこの時間内に最初の要求を送信しない場合、サーバーはクライアントを切断します。

    既定値: 120 秒

  • MaxActiveQueries - ドメイン コントローラーで同時に実行できる同時 LDAP 検索操作の最大数。 この制限に達すると、LDAP サーバーは busy エラーを返します。

    既定値: 20

    Note

    このコントロールと MaxPoolThreads 値の間違った相互作用があります。 MaxPoolThreads はプロセッサごとのコントロールですが、MaxActiveQueries は絶対数を定義します。 Windows Server 2003 以降、MaxActiveQueries は適用されなくなりました。 さらに、Windows Server 2003 バージョンの NTDSUTIL には MaxActiveQueries は表示されません。

    既定値: 20

  • MaxConnections - ドメイン コントローラーが受け入れる同時 LDAP 接続の最大数。 ドメイン コントローラーがこの制限に達した後に接続が確立されると、ドメイン コントローラーは別の接続を切断します。

    既定値: 5000

  • MaxConnIdleTime - LDAP サーバーが接続を閉じる前にクライアントをアイドル状態にできる最大時間 (秒)。 接続がこれ以上アイドル状態の場合、LDAP サーバーは LDAP 切断通知を返します。

    既定値: 900 秒

  • MaxDatagramRecv - ドメイン コントローラーが処理するデータグラム要求の最大サイズ。 MaxDatagramRecv の値より大きい要求は無視されます。

    既定値: 4,096 バイト

  • MaxNotificationPerConnection - 1 つの接続で許可される未処理の通知要求の最大数。 この制限に達すると、サーバーはその接続で実行される新しい通知検索に busy エラーを返します。

    既定値: 5

  • MaxPageSize - この値は、返される各オブジェクトの大きさに関係なく、1 つの検索結果で返されるオブジェクトの最大数を制御します。 結果がこの数のオブジェクト数を超える可能性がある検索を実行するには、クライアントでページングされた検索コントロールを指定する必要があります。 返された結果を、MaxPageSize 値以下のグループにグループ化します。 要約すると、MaxPageSize は、1 つの検索結果で返されるオブジェクトの数を制御します。

    既定値: 1,000

  • MaxPoolThreads - ドメイン コントローラーがネットワーク入力または出力 (I/O) のリッスン専用のプロセッサごとのスレッドの最大数。 この値は、LDAP 要求で同時に動作できるプロセッサごとのスレッドの最大数も決定します。

    既定値: プロセッサあたり 4 スレッド

  • MaxResultSetSize - ページングされた結果検索を構成する個々の検索の間で、ドメイン コントローラーはクライアントの中間データを格納できます。 ドメイン コントローラーはこのデータを格納して、ページングされた結果検索の次の部分を高速化します。 MaxResultSize 値は、この種の検索のためにドメイン コントローラーが格納するデータの総量を制御します。 この制限に達すると、ドメイン コントローラーはこれらの中間結果のうち最も古い結果を破棄して、新しい中間結果を格納する領域を作ります。

    既定値: 262,144 バイト

  • MaxQueryDuration - ドメイン コントローラーが 1 回の検索に費やす最大時間 (秒)。 この制限に達すると、ドメイン コントローラーは "timeLimitExceeded" エラーを返します。 より多くの時間を必要とする検索では、ページングされた結果コントロールを指定する必要があります。

    既定値: 120 秒

  • MaxTempTableSize - クエリの処理中に、 dblayer は、中間結果の並べ替えと選択を行う一時データベース テーブルの作成を試みる場合があります。 MaxTempTableSize 制限は、この一時データベース テーブルの大きさを制御します。 一時データベース テーブルに MaxTempTableSize の値よりも多くのオブジェクトが含まれる場合、 dblayer は、完全な DS データベースと DS データベース内のすべてのオブジェクトのはるかに効率的な解析を実行します。

    既定値: 10,000 レコード

  • MaxValRange - この値は、オブジェクトに含まれる属性の数や検索結果に含まれるオブジェクトの数に関係なく、オブジェクトの属性に対して返される値の数を制御します。 Windows 2000 では、このコントロールは 1,000 でハードコーディングされています。 属性に MaxValRange 値で指定された値の数を超える値がある場合は、LDAP の値範囲コントロールを使用して、MaxValRange 値を超える値を取得する必要があります。 MaxValueRange は、1 つのオブジェクトの 1 つの属性で返される値の数を制御します。

    • 最小値: 30
    • 既定値: 1500

Ntdsutil.exeを開始する

Ntdsutil.exeは、Windows インストール CD-ROM のサポート ツール フォルダーにあります。 既定では、Ntdsutil.exeは System32 フォルダーにインストールされます。

  1. [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
  2. Open テキスト ボックスに「ntdsutil」と入力し、Enter キーを押します。 ヘルプをいつでも表示するには、コマンド プロンプトで「 ? 」と入力します。

現在のポリシー設定を表示する

  1. Ntdsutil.exeコマンド プロンプトで、「 LDAP policies」と入力し、Enter キーを押します。
  2. LDAP ポリシーのコマンド プロンプトで、「 connections」と入力し、Enter キーを押します。
  3. サーバー接続コマンド プロンプトで、「 connect to server <DNS name of server>」と入力し、Enter キーを押します。 現在使用しているサーバーに接続する必要があります。
  4. サーバー接続コマンド プロンプトで、「 q」と入力し、Enter キーを押して前のメニューに戻ります。
  5. LDAP ポリシーのコマンド プロンプトで、「 Show Values」と入力し、Enter キーを押します。

存在するポリシーの表示が表示されます。

ポリシー設定の変更

  1. Ntdsutil.exeコマンド プロンプトで、「 LDAP policies」と入力し、Enter キーを押します。

  2. LDAP ポリシーのコマンド プロンプトで、「 Set <setting> to <variable>」と入力し、Enter キーを押します。 たとえば、「 Set MaxPoolThreads to 8」と入力します。

    この設定は、サーバーに別のプロセッサを追加すると変更されます。

  3. Show Values コマンドを使用して、変更を確認できます。

    変更を保存するには、 Commit Changes を使用します。

  4. 完了したら、「 q」と入力し、Enter キーを押します。

  5. Ntdsutil.exeを終了するには、コマンド プロンプトで「 q」と入力し、Enter キーを押します。

Note

この手順では、既定のドメイン ポリシー設定のみが表示されます。 独自のポリシー設定を適用すると、表示できません。

再起動が必要

ドメイン コントローラーが現在使用しているクエリ ポリシーの値を変更した場合、それらの変更は再起動なしで有効になります。 ただし、新しいクエリ ポリシーが作成された場合、新しいクエリ ポリシーを有効にするには再起動が必要です。

クエリ値の変更に関する考慮事項

ドメイン サーバーの回復性を維持するために、タイムアウト値を 120 秒に増やすことはお勧めしません。 より効率的なクエリの形成が推奨されるソリューションです。 効率的なクエリの作成の詳細については、「 効率的な Microsoft Active Directory 対応アプリケーションの作成」を参照してください。

ただし、クエリを変更するオプションがない場合は、タイムアウト値を 1 つのドメイン コントローラーでのみ、または 1 つのサイトでのみ増やします。 指示については、次のセクションを参照してください。 設定が 1 つのドメイン コントローラーに適用されている場合は、クライアントが認証にサーバーを使用する可能性が低いように、ドメイン コントローラーの DNS LDAP の優先順位を下げてください。 優先度を上げるドメイン コントローラーで、次のレジストリ設定を使用して LdapSrvPriorityを設定します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

Edit メニュー[値の追加]を選択し、次のレジストリ値を追加します。

  • エントリ名: LdapSrvPriority
  • 値の種類: REG_DWORD
  • 値: 値を目的の優先度の値に設定します。

詳細については、「 クライアントのサイトの外部にあるドメイン コントローラーまたはグローバル カタログの場所を最適化する方法を参照してください。

ドメイン コントローラーごとまたはサイト ポリシーごとに構成する手順

  1. CN=Query-Policies、CN=Directory Service、CN=Windows NT、CN=Services、CN=Configuration、 forest root の下に新しいクエリ ポリシーを作成します。

  2. Query-Policy-Object 属性に新しいポリシーの識別名を入力して、新しいポリシーを指すようにドメイン コントローラーまたはサイトを設定します。 属性の場所は次のとおりです。

    • ドメイン コントローラーの場所は、CN=NTDS Settings、CN= DomainControllerName、CN=Servers、CN= site name、CN=Sites、CN=Configuration、 forest root です。

    • サイトの場所は、CN=NTDS サイト設定、CN= サイト名、CN=Sites、CN=Configuration、 forest root です。

サンプル スクリプト

次のテキストを使用して、Ldifde ファイルを作成できます。 このファイルをインポートして、タイムアウト値が 10 分のポリシーを作成できます。 このテキストを Ldappolicy.ldf にコピーし、次のコマンドを実行します。ここで forest root はフォレスト ルートの識別名です。 DC=X はそのままにしておきます。 これは、スクリプトの実行時にフォレスト ルート名に置き換えられる定数です。 定数 X はドメイン コントローラー名を示しません。

ldifde -i -f ldappolicy.ldf -v -c DC=X DC= forest root

Ldifde スクリプトを起動する

dn: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X  
changetype: add  
instanceType: 4  
lDAPAdminLimits: MaxReceiveBuffer=10485760  
lDAPAdminLimits: MaxDatagramRecv=1024  
lDAPAdminLimits: MaxPoolThreads=4  
lDAPAdminLimits: MaxResultSetSize=262144  
lDAPAdminLimits: MaxTempTableSize=10000  
lDAPAdminLimits: MaxQueryDuration=300  
lDAPAdminLimits: MaxPageSize=1000  
lDAPAdminLimits: MaxNotificationPerConn=5  
lDAPAdminLimits: MaxActiveQueries=20  
lDAPAdminLimits: MaxConnIdleTime=900  
lDAPAdminLimits: InitRecvTimeout=120  
lDAPAdminLimits: MaxConnections=5000  
objectClass: queryPolicy  
showInAdvancedViewOnly: TRUE

ファイルをインポートした後は、Adsiedit.msc または Ldp.exe を使用してクエリ値を変更できます。 このスクリプトの MaxQueryDuration 設定は 5 分です。

ポリシーを DC にリンクするには、次のように LDIF インポート ファイルを使用します。

dn: CN=NTDS  
Settings,CN=DC1,CN=Servers,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

次のコマンドを使用してインポートします。

ldifde -i -f link-policy-dc.ldf -v -c DC=X DC= **forest root**

サイトの場合、LDIF インポート ファイルには次のものが含まれます。

dn: CN=NTDS Site Settings,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Note

Ntdsutil.exeは、既定のクエリ ポリシーの値のみを表示します。 カスタム ポリシーが定義されている場合、Ntdsutil.exeでは表示されません。