【Windows Server】既存ドメインに2台目以降のドメインコントローラを構築する(GUI / PowerShell)

記事タイトルとURLをコピーする

こんにちは!技術1課のイーゴリです。

前回のDC構築の記事でご説明しました通り、本番環境では、高可用性を実現するために、各ドメインには少なくとも 2台のDCを用意することをお勧めします。

なぜなら、各ドメインコントローラー間で行われた変更を伝達するためにレプリケーションという同期動作が行われるからです。 何らかの理由でコントローラーの1台に障害が発生した場合、他のコントローラーを代わりに使用でき、エンドユーザーにも影響はありません。そのために、本番環境では各ドメインに少なくとも 2台のDCを用意することをお勧めしますので、本件の記事では、既存ドメインに2台目以降のドメインコントローラを構築する方法をご紹介致します。

下記の図の通りに構築します。

f:id:swx-korotkov:20220216142922p:plain

なお、下記の目次にある「GUIの方法」か「PowerShellの方法」のどちらかをお選びください。

事前準備

IP設定の変更

本件の記事では、コンピューター名及びIPアドレスの設定の部分は省きましたが、AWSの場合、DHCPで固定のIPが割り当てられるため、IPアドレスの設定をOS上から変更しないでください(対象ENIに接続できなくなります)。

※もしIP設定をOS上から変更してしまった場合、対策方法としては一時的に新規ENIを作成し対象のDCにアタッチします。その後、OS上で、IP設定をもとに戻したら、また既存のENIに接続ができるようになるため、一時的に作成したENIを削除しても大丈夫です。

参照するDNSサーバの変更

但し、適切なDHCPの設定がない限り、DC1のDNSを指定しないとDC2でDC1が見えないため、DC2でDNS設定のみを変更します。

[Win+R]を押し、開いた「実行」の窓で「ncpa.cpl」を入力し、「Enter」を押します。

f:id:swx-korotkov:20220217120657p:plain

[ネットワーク接続]画面に移動されます。(「ネットワーク接続」画面までのアクセス方法は色々ありますが、本件の記事が長くならないように短時間で済む方法をご紹介しました)。

対象NICの右クリックで[プロパティ]を開き、[インターネットプロトコルバージョン4(TCP/IPv4)]をダブルクリックします。

f:id:swx-korotkov:20220217121452p:plain

[次のDNSサーバーのアドレスを使う]をチェックし、新規DC(DC02)でDNSとして既存DC(DC1)のIPを指定します。[優先DNSサーバー]の欄にDC01のIPアドレスを入力します。2台目のDNSロールを持っているDCサーバがない場合、[代替DNSサーバー]の欄に「127.0.0.1」(Loopback)を入力します。最後に[OK]ボタンをクリックします。

f:id:swx-korotkov:20220217121330p:plain

f:id:swx-korotkov:20220217122307p:plain

上記の設定を行った後、DC1が見えるようになります。

※前回の記事で構築したDC1にもDC2のDNSを指定しますが、DC1があるドメインにDC2を参加させるためには上記の設定で充分です。

優先DNSサーバーについての注意点

上記のDNS設定について下記の記事で説明致しましたので、ご参考ください。

blog.serverworks.co.jp

コンピューター名の変更

コンピューター名も適切な名前に変更する必要がありますので、

・GUIの場合、[Windows]ボタン→[サーバーマネージャー]→[コンピューター名]の箇所でコンピューター名を変更することができます。コンピューター名を変更したら、Windows Serverを再起動する必要があります。 f:id:swx-korotkov:20220208102904p:plain ・CUIの場合、下記のコマンドを使用します。

PowerShellコマンド:

Rename-Computer -NewName DC02

※「DC02」の代わりに適切なコンピューター名を入力してください。

出力結果:

PS C:\Users\Administrator> Rename-Computer -NewName DC02
警告: 変更は、コンピューター EC2AMAZ-13VPRI3 の再起動後に有効になります。

サーバーを再起動するには下記コマンドを実行します。
PowerShellコマンド:

Restart-Computer

サーバーの役割のインストール

DC1と同じくサーバーの役割のインストールをする必要があります。

役割のインストールについて、前回のGUIやPowerShellの記事をご参考ください。

GUIの場合:

「GUIでサーバーの役割のインストール手順」を参照 blog.serverworks.co.jp

PowerShellの場合:

「PowerShellでのサーバーの役割のインストール手順」を参照 blog.serverworks.co.jp

Windowsの地域やタイムゾーンの設定変更: blog.serverworks.co.jp

私はWindows ServerをAWSで展開しているので、Windows Serverの展開時にAWSコンソールの[ユーザーデータ]に下記のPowerShellコマンド(サーバの役割、地域、タイムゾーン)を入力します。

<powershell>
Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools
Install-WindowsFeature -Name DNS -IncludeManagementTools
Install-WindowsFeature -Name DHCP -IncludeManagementTools
tzutil /s "Tokyo Standard Time"
Set-WinHomeLocation -GeoId 122
</powershell>

f:id:swx-korotkov:20220217123359p:plain

DC機能の状態確認

新しいドメインコントローラーを追加する前に、ActiveDirectoryドメインが正しく機能していることを確認してください。

①各DCで下記のコマンドを実施し、重要なエラーがないか確認します。

Dcdiag /v

f:id:swx-korotkov:20220217141415p:plain

②複数のDCが存在している場合、対象のDCで下記のコマンドを実行し、ADレプリケーションに問題がないか確認します。

repadmin /showrepl

及び

repadmin /replsum

今回はDC1しかないため、何も表示されません。

f:id:swx-korotkov:20220217141751p:plain

バックアップの取得

ドメインコントローラの最新のバックアップがあることをご確認ください。

AWSの場合、AMIを取得します。

Firewallの設定

DC間で必要なポートが開放されていることを確認する必要があります。

下記のマイクロソフトの記事をご参考ください。

docs.microsoft.com

GUIの方法

[Windows]ボタン→[サーバーマネージャー]をクリックします。

f:id:swx-korotkov:20220126181851p:plain

[サーバーマネージャー]にあるビックリマークをクリックし、[このサーバーをドメインコントローラーに昇格する]をクリックします。

f:id:swx-korotkov:20220217173036p:plain

[配置構成]の画面で、[既存のドメインにドメインコントローラーを追加する]が選択されていることを確認し、[ドメイン]のそばにある[選択]ボタンをクリックします。

f:id:swx-korotkov:20220217173412p:plain

[Windowsセキュリティ]の画面で[ユーザー名]に「ドメイン名¥DCのAdministrator権限を持っているユーザー」(私の場合、「test.local¥Administrator」)と入力します。[パスワード]に、DCのAdministratorのパスワードを入力します。

f:id:swx-korotkov:20220217174030p:plain

[フォレストからのドメインの選択]の画面が表示されますので、対象のドメインを選択し、[OK]ボタンをクリックします。その後、[次へ]をクリックします。

f:id:swx-korotkov:20220217174712p:plain

今回は他のサイトがなく、Global Catalogもデフォルト設定のため、ディレクトリ復元モード(DSRM)のパスワードを入力した上、[次へ]をクリックします。

※ GlobalCatalog及びサイトについては別の記事で説明する予定です。

f:id:swx-korotkov:20220217175312p:plain

上記のパスワードがWindowsサーバーの障害時に使われています。

[DNSオプション]の画面で[次へ]をクリックします。

f:id:swx-korotkov:20220217175635p:plain

[追加オプション]の画面で、[レプリケーション元]に拘りがなければ、[次へ]をクリックします。

f:id:swx-korotkov:20220217175526p:plain

[パス]の画面で、データベース、ログファイル、SYSVOLを指定します。データベースとログファイルを別のディスクに配置することでパフォーマンスが向上しますが、物理的に分割する必要がありますので、今回はそのまま「次へ」をクリックします。

f:id:swx-korotkov:20220217175813p:plain

OSバージョンによって少し異なりますが、[準備オプション]の画面が表示される場合、「次へ」をクリックします。

[オプションの確認]の画面で、「次へ」をクリックします。

f:id:swx-korotkov:20220217175913p:plain

[前提条件のチェック]の画面で、[インストール]をクリックします。 

f:id:swx-korotkov:20220217180144p:plain

設定完了後、自動的にサーバーが再起動されます。

再起動後、ログインする時にDCのAdministrator認証情報を使います。

完了です!

やはり、GUIの方法はとても時間がかかるので、PowerShellの方法のほうが楽/早い/効率的なため、下記でPowerShellの方法もご紹介させて頂きます。速さを比較してみてください!

PowerShellの方法

AD-Domain-Servicesがインストールされていることを確認します。

f:id:swx-korotkov:20220216190335p:plain

私の場合、DCの詳細設定が不要なため、下記のコマンドを実行すれば既存フォレスト・ドメインに2台目以降のドメインコントローラを追加できます。

Install-ADDSDomainController -DomainName "test.local " (get-credential TEST\Administrator) 
  • 「test.local」の代わりに適切なDNS名を入力してください
  • 「TEST\Administrator」の代わりに適切な認証情報を入力してください

資格情報の窓で適切なパスワードを入力してから、[OK]をクリックします。

f:id:swx-korotkov:20220217152915p:plain

SafeModeAdministratorPasswordを入力したら、[Enter]を押します。次の窓でもう一回[Enter]を押します。下記の画像のようなインストールプロセスが開始します。

f:id:swx-korotkov:20220217153102p:plain

設定完了後、自動的にサーバーが再起動されます。

f:id:swx-korotkov:20220217153226p:plain

再起動後、ログインする時にDCのAdministrator認証情報を使います。

完了です!

補足

詳細設定を行う必要がある場合、下記のようなコマンドを入力しますが、あくまで下記はコマンドの例なので、必要なパラメータについて自分でご検証ください。

Install-ADDSDomainController -DomainName test.local -InstallDns:$true -NoGlobalCatalog:$false -SiteName 'Osaka' -NoRebootOnCompletion:$true -Force:$true -Credential (get-credential TEST\Administrator)

上記のコマンドを簡単に説明しますと、

  • 「-InstallDns:$true」は事前にDNSをインストールしなかった場合、DNSをインストールするコマンドです
  • 「Osaka」の代わりに適切なサイト名を入力してください
  • 「-NoGlobalCatalog:$false」は「GlobalCatalog」を明確に有効にするコマンドです
  • 「-NoRebootOnCompletion:$true」は、構築後、自動的に再起動させないためのコマンドです

※ GlobalCatalog及びサイトについては別の記事で説明する予定です。

ドメインコントローラーのステータスの診断

構築が完了次第、新規ドメインコントローラーの正常性を確認する必要があるため、確認方法を下記の記事で紹介致しましたので、ご参照ください。

blog.serverworks.co.jp

考慮事項

ドメイン名についての注意点

「test.local」のドメインを本件の記事のためだけに記載しましたが、本番環境での「.local」のようなドメインの使用はNGです。正しいドメイン名の選び方について下記の記事をご参考ください。

blog.serverworks.co.jp

DHCPの役割について

今回のシナリオでは、ADDS, DHCP, DNSの「標準セット」でDHCPもインストールしました。但し、AWS内のみでADを使っている場合、AWSのDHCP機能があるため、AD上にあるDHCPの説明を省きます。

もしオンプレミスの端末のためにDCにあるDHCPが必要というシナリオの場合、構成によってDHCPの役割をインストールする必要がある可能性がありますので、自分でご判断ください。

ヒントとしては基本的にはオンプレミス環境でAD上のDHCPが使われているパターンが非常に多いです。AWSの場合、AWS上にあるDHCPがあるため、インストールは不要です。

但し、ハイブリッドクラウドの場合、オンプレミスの端末のためにAD上にあるDHCPの役割をインストールする必要性があります。

以上、御一読ありがとうございました。

イーゴリ (記事一覧)

クラウドインテグレーション部・技術4課・エンジニア

特にTerraform(自動化)、ネットワーク系、VDI、Windows Serverに興味があります

日本国内旅行・ドライブが好きです