Active Directory で LDAP ポリシーを表示および設定するには、次のNtdsutil.exe
この記事では、このツールを使用してライトウェイト ディレクトリ アクセス プロトコル (LDAP) ポリシーを管理するNtdsutil.exe説明します。
適用対象: WindowsServer 2019、Windows Server 2016、Windows Server 2012 R2
元の KB 番号: 315071
概要
ドメイン コントローラーがサービス レベルの保証をサポートするには、多くの LDAP 操作の運用制限を指定する必要があります。 これらの制限により、特定の操作がサーバーのパフォーマンスに悪影響を及ぼすのを防ぐ。 また、一部の種類の攻撃に対するサーバーの回復力も高くします。
LDAP ポリシーは、クラスのオブジェクトを使用して実装 queryPolicy
されます。 クエリ ポリシー オブジェクトは、構成名前付けコンテキストの Directory Service コンテナーの子であるクエリ ポリシー コンテナーに作成できます。 たとえば、cn=Query-Policies、cn=Directory Service、cn=Windows NT、cn=Services 構成名前付け コンテキストなどです。
LDAP 管理の制限
LDAP 管理の制限は次のとおりです。
InitRecvTimeout - この値は、ドメイン コントローラーが新しい接続を受信した後、クライアントが最初の要求を送信するのを待つ最大時間 (秒) を定義します。 この時間内にクライアントが最初の要求を送信しない場合、サーバーはクライアントを切断します。
既定値: 120 秒
MaxActiveQueries - ドメイン コントローラーで同時に実行できる同時 LDAP 検索操作の最大数。 この制限に達すると、LDAP サーバーはビジー エラーを 返 します。
既定値: 20
注意
このコントロールは、MaxPoolThreads 値との間違った相互作用を持っています。 MaxPoolThreads はプロセッサごとのコントロールですが、MaxActiveQueries は絶対数を定義します。 サーバー 2003 Windows、MaxActiveQueries は適用されなくなりました。 さらに、MaxActiveQueries は NTDSUTIL Windowsサーバー 2003 バージョンには表示されません。
既定値: 20
MaxConnections - ドメイン コントローラーが受け入れる同時 LDAP 接続の最大数。 ドメイン コントローラーがこの制限に達した後に接続が入った場合、ドメイン コントローラーは別の接続をドロップします。
既定値: 5000
MaxConnIdleTime - LDAP サーバーが接続を閉じる前にクライアントをアイドル状態にできる最大時間 (秒)。 この時間以上接続がアイドル状態の場合、LDAP サーバーは LDAP 切断通知を返します。
既定値: 900 秒
MaxDatagramRecv - ドメイン コントローラーが処理するデータグラム要求の最大サイズ。 MaxDatagramRecv の値より大きい要求は無視されます。
既定値: 4,096 バイト
MaxNotificationPerConnection - 1 つの接続で許可される未処理の通知要求の最大数。 この制限に達すると、サーバーは、その接続で実行される新しい通知検索にビジー エラーを返します。
既定値: 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 の値よりも多くのオブジェクトが含まれる場合、完全な DS データベースと DS データベース内のすべてのオブジェクトの解析の効率がはるかに低い。dblayer
既定値: 10,000 レコード
MaxValRange - この値は、オブジェクトの属性に対して返される値の数、オブジェクトの属性の数、または検索結果に含まれるオブジェクトの数を制御します。 2000 Windowsでは、このコントロールは 1,000 でハードコードされています。 MaxValRange 値で指定された値の数を超える属性がある場合は、LDAP の値範囲コントロールを使用して、MaxValRange 値を超える値を取得する必要があります。 MaxValueRange は、1 つのオブジェクト上の 1 つの属性に返される値の数を制御します。
- 最小値: 30
- 既定値: 1500
スタートNtdsutil.exe
Ntdsutil.exeは、インストール CD-ROM の Windowsツール フォルダーにあります。 既定では、Ntdsutil.exe System32 フォルダーにインストールされます。
- [スタート] ボタンをクリックし、[ファイル名を指定して実行] をクリックします。
- [開く ] テキスト ボックスに 「ntdsutil」と入力し、Enter キーを押します。 いつでもヘルプを表示するには、コマンド プロンプト
?
で入力します。
現在のポリシー設定を表示する
- コマンド プロンプトNtdsutil.exe入力し
LDAP policies
、Enter キーを押します。 - LDAP ポリシー のコマンド プロンプトで
connections
、「」と入力し、Enter キーを押します。 - サーバー接続コマンド プロンプトで、「」と
connect to server <DNS name of server>
入力し、Enter キーを押します。 現在作業しているサーバーに接続する場合。 - サーバー接続コマンド プロンプトで
**q**
、「」と入力し、Enter キーを押して前のメニューに戻ります。 - LDAP ポリシー のコマンド プロンプトで
Show Values
、「」と入力し、Enter キーを押します。
存在するポリシーの表示が表示されます。
ポリシー設定の変更
コマンド プロンプトNtdsutil.exe入力し
LDAP policies
、Enter キーを押します。LDAP ポリシー のコマンド プロンプトで
Set <setting> to <variable>
、「」と入力し、Enter キーを押します。 たとえば 、「MaxPoolThreads を 8 に設定する」と入力します。サーバーに別のプロセッサを追加すると、この設定が変更されます。
このコマンドを使用
Show Values
して、変更を確認できます。変更を保存するには、[変更のコミット ] を使用します。
終了したら、「」と
q
入力し、Enter キーを押します。コマンド プロンプトでNtdsutil.exe、Enter キーを押します
q
。
注意
この手順では、既定のドメイン ポリシー設定のみを表示します。 独自のポリシー設定を適用すると、ポリシーが表示されません。
再起動の要件
ドメイン コントローラーが現在使用しているクエリ ポリシーの値を変更すると、それらの変更は再起動なしで有効になります。 ただし、新しいクエリ ポリシーが作成された場合は、新しいクエリ ポリシーを有効にするために再起動が必要です。
クエリ値の変更に関する考慮事項
ドメイン サーバーの復元を維持するために、タイムアウト値を 120 秒に増やしてお勧めしません。 より効率的なクエリを形成する方法が望ましいソリューションです。 効率的なクエリの作成の詳細については 、「Creating More Efficient Microsoft Active Directory-Enabledアプリケーション」を参照してください。
ただし、クエリの変更がオプションではない場合は、1 つのドメイン コントローラーでのみ、または 1 つのサイトでのみタイムアウト値を増やしてください。 手順については、次のセクションを参照してください。 設定を 1 つのドメイン コントローラーに適用する場合は、ドメイン コントローラーの DNS LDAP 優先度を下して、クライアントが認証にサーバーを使用する可能性が低くなります。 優先度が上がったドメイン コントローラーで、次のレジストリ設定を使用して設定します LdapSrvPriority
。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
[編集 ] メニューの [値の 追加] を 選択し、次のレジストリ値を追加します。
- エントリ名: LdapSrvPriority
- データ型: REG_DWORD
- 値: 必要な優先度の値に値を設定します。
詳細については、「クライアントのサイトの外部に存在するドメイン コントローラーまたはグローバル カタログの場所を最適化する方法」 を参照してください。
ドメイン コントローラーまたはサイト ポリシーごとに構成する手順
CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,フォレスト ルートの下に新しいクエリ ポリシーを 作成します。
Query-Policy-Object 属性に新しいポリシーの識別名を入力して、新しいポリシーをポイントするドメイン コントローラーまたはサイトを設定します。 属性の場所は次のとおりです。
ドメイン コントローラーの場所は、CN=NTDS 設定、CN= DomainControllerName、CN=Servers、CN= サイト名、CN=Sites、CN=Configuration、フォレスト ルートです。
サイトの場所は CN=NTDS サイト 設定、CN= サイト名、CN=Sites、CN=Configuration、フォレスト ルートです。
サンプル スクリプト
次のテキストを使用して、Ldifde ファイルを作成できます。 このファイルをインポートして、タイムアウト値が 10 分のポリシーを作成できます。 このテキストを Ldappolicy.ldf にコピーし、次のコマンドを実行します。フォレスト ルートはフォレスト ルートの識別名です。 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
注意
Ntdsutil.exeクエリ ポリシーの値のみを表示します。 カスタム ポリシーが定義されている場合、カスタム ポリシーはユーザー設定によってNtdsutil.exe。