【Management】DMZでのドメイン参加はオフラインドメインジョインで!

たとえば、以下のような構成があるとします。

koseizu

上記のDMZにある AppSV(アプリケーションサーバー) はActive Directoryドメインに参加していませんが、せっかくDMZにRODCが出来たので、ドメインに参加してアカウントをActive Directoryで一元管理することにしました。

さて、ドメインに参加するには、絶対に無視できない条件が2つあります。それは、

  • クライアントとドメインコントローラーが通信できること
  • ドメインコントローラーに書き込みができること

です。

AppSVと同じセグメントにはRODCがありますが、ご存じのとおりRODCには書き込むことができません。

一方、FWの向こう側にはRWDC(書き込み可能なドメインコントローラー)がありますが、今回は、AppSVとRWDCの通信は行えないという前提で話を進めましょう。そもそもAppSVから内部ネットワーク、特にドメインコントローラにアクセスさせたくなんて無いですよね。

つまり、上記2つの条件を全く満たしていないということになります。

この状態でAppSVをドメインに参加させようとすると、以下のようなエラーが発生します。

domainjoin 

このAppSVを内部ネットワークに移動せずにドメインに参加する方法は2つあります。

方法1:Win32_ComputerSystemクラスの JoinDomainOrWorkgrouopメソッドをする

事前にコンピューターアカウントのパスワードを明に指定しておく必要があります。

※2009/08/24 追記
本方法を使用した手順については以下をご覧ください。
【Management】JoinDomainOrWorkGroup メソッドでドメインに参加させる

※恐縮なのですが、この方式、検証していません。
メソッドの詳細は以下をご覧ください。

JoinDomainOrWorkgroup Method of the Win32_ComputerSystem Class
https://msdn.microsoft.com/ja-jp/library/aa392154(en-us,VS.85).aspx

※サンプルスクリプトを使用したDMZでのドメイン参加については以下をご覧ください(英語です…)

Deploying RODCs in the Perimeter Network
https://technet.microsoft.com/ja-jp/library/dd728035(WS.10).aspx

方式2:オフライン ドメイン ジョイン機能を使用する

クライアントがWindows 7またはWindows Server 2008 R2 であればオフライン ドメイン ジョイン(以降ODJ:Offline Domain Join)機能を使用して、ネットワークを使わないドメイン参加が可能です。

ODJの実行イメージは以下の通りです。

ODJ

1)プロビジョンを行う

既にドメインに参加しているクライアント上で以下のコマンドを実行します。

C:\> djoin /provision /domain DOMAINNAME /machine COMPUTERNAME /savefile BLOBファイルのファイル名

実行例を以下に示します。

djoin_provision

この操作によって、ドメインコントローラ上にコンピュータアカウントが作成され、参加させたいコンピュータに取り込むための「BLOBファイル」が出力されます。

ちなみに、ここで作成したBLOBファイルとは以下のようなものです。Base64でエンコードはされていますが、暗号化された文字列ではありませんので取り扱いには注意しましょう。

djoin_blob

2)ドメインに参加する

作成したBLOBファイルを、参加させたいクライアント上にコピーし、以下のコマンドを実行します。

C:\> djoin /requestODJ /loadfile BLOBファイル名 /windowspath %Systemroot%

実行結果例を以下に示します。

domainjoin2 

3)クライアントを再起動する

あとはクライアント(今回はAppSV)を再起動すればドメイン参加は完了です。

コンピューターアカウントのパスワード交換はRODCを介して行うことができるので、心配はいりません。