[AD初級編] AD と ADAM の微妙な違い 2 ~ ntdsutil と dsmgmt で LDAP ポリシーを管理しよう!~

皆様ごきげんよう。ういこです。

先日授業参観に行ったんですが、その日はこくごで、「小さい "ゃ" "ゅ" "ょ" が入った言葉を探そう」というお題でした。
うちの息子は「ちょんまげ」「しゅりけん」「にんじゃ」と非常にクラシックなチョイスでわが息子ながら好感の持てるものでしたが、その前の席の子がまたふるってました。

きゃんせるまち
しゃおんかい

先生が「きゃんせるまち」は難しい言葉だからおうちの人に聞こうね!と言っていたのが面白かったです。しかし、どういうシチュエーションで覚えたんだきゃんせるまち。

さて今日は、ADAM と Active Directory (AD) の微妙な違い、わかっちゃえばな~んだというネタの続きです。
AD の管理を行うツールのひとつに、ntdsutil というものがあります。AD の場合コレを使って、LDAP ポリシーなどを変更したりいろいろできるのですが、はて、ADAM の場合はどうするのでしょう?
答えは、dsmgmt を使う、です。dsmgmt は、ADAM の管理機能をつかさどるツールです。

Dsmgmt
https://technet.microsoft.com/ja-jp/library/cc781970(WS.10).aspx

ntdsutil も、dsmgmt も非常にいろいろなことができますが、まずは簡単な使い方だけご紹介します。もしかしたらつかったことのない方もいらっしゃるかもしれません。ちょっと癖があるので、実際にやってみてください。 操作例として、LDAP ポリシーを変更して見ましょう。

dsmgmt : ADAM でポリシーを変更する (AD も手順 2 からは共通)
1. [スタート] メニュー - [ADAM] - [ADAM ツール コマンド プロンプト] を実行し、「dsmgmt」と入力し、Enter キーを実行します。表示が dsmgmt: となったらこっちのもんです。

image

2. LDAP policies とタイプし、Enter キーを実行します。

dsmgmt: LDAP policies

image

3. connections とタイプし、Enter キーを実行します。

ldap policy: connections

image

4. connect to server <サーバー名>:<ポート番号> と入力して、Enter キーを実行します。
(以下の例では localhost、使用ポート 50000 を指定)

server connections: connect to server localhost:50000

以下のようなメッセージが表示されます。

///////////////////////
localhost:50000 に結合しています...
ローカルでログオンしているユーザーの資格情報を使って localhost:50000 に接続しました。
///////////////////////

image

5. q と入力して Enter を押すと、一つ前に戻ります。ここで q すると、ldap policy に戻ります。

image

6. show values と入力して Enter を押すと、現在サーバに設定されている LDAP ポリシーの値が出てきます。

image

7. それでは一つ、変更して見ましょう。ためしに DC に同時に接続可能な最大コネクション数のポリシーの MaxConnections を変更しましょうか。既定値は 5000 です。これを 5010 にしてみましょう。変更は set <ポリシー名> to <変更したい値> です。ちなみにスキーマなどは変えてしまうと戻せませんが、LDAP ポリシーは値を元に戻すこともできます。

ldap policy : set MaxConnections to 5010

8. これだけだと結果は反映されませんので、コミットさせます。

ldap policy : commit changes

9. もう一度 LDAP ポリシーを見てみます。値、変わってますね。5010 になっています。

image

10. あとは抜けるだけです。q を押して Enter で dsmgmt: に戻ります。もう一回 q を押して Enter するとコマンド プロンプトに戻ります。

image

※おまけ : ADAM で ntdsutil を使うと…。
ちなみに、AD だと ntdsutil です。でも、ntdsutil は起動できますね。
でも RPC サーバーが利用できないと怒られます。

image

簡単に dsmgmt を起動させるには? (環境変数 PATH への登録)
フツーのコマンド プロンプトだとパスが通ってないので、怒られます。
コマンド プロンプトや [ファイル名を指定して実行] でプログラム名などをタイプして実行すると、環境変数 PATH を検索して指定されたものがあるかをチェックするからです。

image

dsmgmt などは実際には %windir%\adam に格納されています。
そこにコマンド プロンプトの dir コマンドでここにパスを移すか、環境変数 PATH に %windir%\adam を設定しちゃえばフツーのコマンド プロンプトから起動できるようになりますよ。
image

いちいち ADAM ツールコマンド プロンプトなんてまだるっこしくてやってらんねぇという方は環境変数 PATH を使ってみてください。

1. コントロール パネルの [システム] を選択。あるいは [マイ コンピュータ] を右クリックしてプロパティを選択し出てきた [システムのプロパティ] ダイアログの [環境変数(N)] を押す

image

2. 環境変数ダイアログがでるので、下の [システム環境変数(S)] の Path をクリックして選択した状態で [編集(I)] を押す

image

3. [変数値(V)] のところに、%Windir%\adam もしくは c:\windowadam あたりを指定して [OK] をクリック

image

4. 環境変数ダイアログにもどるのでもっかい OK を押す。

5. システムのプロパティダイアログに戻るのでもっかい OK を押す。終わり

※ LDAP ポリシーについて

下記の技術情報にまとまっていますが、簡単に説明させて頂きます。

How to view and set LDAP policy in Active Directory by using Ntdsutil.exe
https://support.microsoft.com/kb/315071/en-us

・InitRecvTimeout (初回受信タイムアウト)
サーバーが最初の接続の要求を待って接続を閉じるまでの最大時間です。接続がアイドル状態のまま設定された時間を過ぎると、 LDAP サーバーは LDAP 接続通知を返し、接続を閉じます。
既定値: 120 秒

・MaxActiveQueries (アクティブなクエリの最大数)
サーバで許される同時検索操作の最大数です。設定値に達すると LDAP サーバはビジー通知を返します。
既定値: 20

・MaxConnections (最大接続数)
サーバーで許される同時 LDAP 接続の最大数です。設定された値に達すると LDAP サーバーは接続を閉じます。
既定値: 5000

・MaxConnIdleTime (接続の最大アイドル時間)
クライアントがアイドル状態になってから接続接続が閉じられるまでの最大時間(秒)です。接続のアイドル時間が設定値を過ぎるとLDAP サーバーは接続を閉じます。
既定値: 900 秒

・MaxDatagramRecv (最大受信データグラム)
サーバーが受信できるデータグラムの最大サイズです。サーバーはデータグラムバッファを事前に割り当てるため、設定値より大きいサイズのデータグラムを受信することはできません。
既定値:
Windows 2000 - 1024 バイト
Windows Server 2003 - 4096 バイト

・MaxNotificationPerConnection (接続あたりの通知の最大数)
サーバーで許される 1 接続あたりの同時通知要求の最大数です。設定値に達すると LDAP サーバはビジー通知を返します。
既定値: 5

・MaxPageSize(最大ページサイズ)
サーバで許される最大のページサイズです。サーバーは MaxPageSize で指定された数の行を返します。
既定値: 1000

・MaxPoolThreads (最大プールスレッド数)
LDAP 要求への応答に割り当てられるプロセッサあたりのスレッド数
既定値: 1 プロセッサごとに 4 つのスレッド

・MaxResultSetSize (結果セットの最大記憶域)
サーバ側がページ分けされた結果セットを保持するための最大記憶域です。
設定値に達しますと最も古い結果セットが破棄されます。
既定値: 262144 バイト

・MaxQueryDuration (最大クエリ接続時間)
クエリの完了までに許される最大の経過時間(秒)です。 設定した値に達するとサーバはエラーを返します。
既定値: 120 秒

・MaxTempTableSize (一時テーブルの最大サイズ)
一時テーブルに置かれる候補のオブジェクトの上限数です。
例として、一時テーブルがサーバー側の並べ替えコントロールなどにより、サーバがクライアントのために結果を並べ替えている過程で、設定値に達する場合があり、この場合サーバーは並べ替え作業を中止し、並べ替える前の結果を返します。
既定値: 10000 個のレコード

・MaxValRange
LDAP クエリが返すことのできるオブジェクトの属性数
既定値:
Windows 2000-1, 024
Windows Server 2003-1, 500

これらのポリシーの各値について一意の推奨値はありませんが、各環境やシステム要件によって最適な値があると思います。テスト環境を作成し、検証の上決定いただくことがよろしいかと思います。

※ 追記 : AD の管理ツール ntdstil は adminpak (Windows Server の管理ツール) に含まれます
Windows Server の CD-ROM (いまどきは DVD?) の i386 フォルダにある adminpak.msi をインストールすればよかろうもんです。あるいは下記からもダウンロードできるです。

Windows XP Professional ベースのクライアントまたは Windows Server 2003 ベースのクライアントを使用して Windows サーバー ベースのコンピュータをリモート管理する方法
https://support.microsoft.com/kb/304718/ja

Windows Server 2003 Service Pack 2 管理ツール パック (x86 エディション用)
https://www.microsoft.com/downloads/info.aspx?na=22&p=1&SrcDisplayLang=ja&SrcCategoryId=&SrcFamilyId=&u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d86b71a4f-4122-44af-be79-3f101e533d95%26DisplayLang%3dja

Windows Server 2003 Service Pack 2 管理ツール パック (x64 エディション用)
https://www.microsoft.com/downloads/info.aspx?na=22&p=3&SrcDisplayLang=ja&SrcCategoryId=&SrcFamilyId=&u=%2fdownloads%2fdetails.aspx%3fFamilyID%3d514bd06e-f3bc-4054-8429-c49f51e2190b%26DisplayLang%3dja

それでは、また~

ういこう@脳みそが痛い