トップ回答者
repadmin でコンテキストを指定した場合の書式

質問
-
よろしくお願いいします。
複数サイトが存在するWindows AD (2016 Server)環境の話です。
一斉に複製するとき、以下のコマンドを使用していました。
C:\> repadmin /syncall /eP
以下のとおり複製パーティションを"mydomain.DC=local"に限定して実行したところエラーが発生しました。
【エラーの例】
C:\> repadmin /syncall /eP DC=mydomain.DC=local
DC=testdomain.DC=local への DsBindWithCred に失敗しました。状態: 1722 (0x6ba):【改善】
エラーから対象ドメインコントローラ名が指定されていないと判断し、以下を実行したところ正常に動作しました。
C:\> repadmin /syncall /eP mydomaincontroller DC=mydomain.DC=local
なぜrepadmi /syncall /eP のときはDC名の指定が不要で、コンテキストを指定する場合はDC名が必要なのでしょうか。
回答
すべての返信
-
チャブーンです。
この件ですが、なかなかいい質問ですね...他意はありませんが。答えとしては「コマンドオプションの自動認識」とでもいうべき、小さな親切機能がコマンドにはあるからです。
マイクロソフト製品のコマンドラインは、簡単に入力実行するため、入力したコマンドオプションを自動認識する機能があります。一番端的な例で、本件のような「実行サーバー名」のオプション入力がなければ、自分自身「localhost」が指定されている、と判断します。
コマンドの自動認識は「コマンドオプションの指定順」で判断します。複製オプションのあとに複製パーティション名オプションがない場合、指定されたオプションの順番をみて、自動的に以下のように認識します。
repadmin /syncall /eP localhost "CN=Configuration,<ForestRoot DN>"
上記のようなロジックでの場合、複製パーティション名だけが追加でオプション入力された場合、それがホスト名なのかパーティション名なのかコマンドは判断できないので、ホスト名として実行し、エラーが出ているのでしょう。
平たくいうと、これはコマンドオプションにおける「作法」なので、守ってもらうしかない話しとなります。ちなみにlocalhostはコマンドではよく「.」(ドット)文字列での置き換えができます。このようなケースでの入力は一般には以下のように行います。
repadmin /syncall /eP . "<Partition DN>"
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 編集済み チャブーンMVP, Moderator 2020年1月19日 3:06
- 回答の候補に設定 Hebikuzure aka Murachi AkiraMVP 2020年1月20日 1:03