Active Directoryで2つのドメイン コントローラー間のレプリケーションを強制する
自宅にドアが1つしかないことを想像してみてください。 窓はなく、パティオドアもなく、ドアは1つだけです。 もし、そのドアを開けられなかったらどうなるでしょうか。
ドメインコントローラは、ある意味、ドアのようなものです。 用心棒がいるドアです。 ドメインコントローラーは、あなたが望むものへと中に入るためのゲートウェイです。 Active Directory (AD)は、ドアの用心棒です。 あなたの資格をチェックし、ドアを通ることが許されるかどうか、そして中に入ってからどのリソースにアクセスできるかを決定します。
あらゆる種類のネットワークを運用していて、ドメインコントローラーが1つしかない場合、ドアが1つしかない家に住んでいることになります。 そのドメインコントローラーに何かが起きれば、サーバーのシステム全体が崩壊してしまいます。
でも、どうやって両方のドメインコントローラーが同じ情報を持っていることを確認するのでしょうか? 例えば、一方のDCでセキュリティ関連の変更を行ったとします。 その変更がすぐに他のDCにレプリケートされることを確認したいとします。 予定では15分以上も待つ必要があるだろうか? Active Directoryのドメインコントローラのレプリケーションを強制的に行う必要があります。
これには3つの方法があります: グラフィカル ユーザー インターフェイス (GUI)、コマンド ライン インターフェイス (CLI)、または PowerShell を通じて行います。
Force Replication Of Domain Controller Through GUI
Windows サーバーでは GUI が多く使用されていますが、これは初心者のシステム管理者にとっては良いことです。 これは、初心者のシステム管理者にとっては良いことです。学ぶのが簡単ですし、実際に何が起こっているのかを視覚化するのに役立ちます。
- いずれかのDCにログインし、Active Directory Sites and Servicesを開きます。
- ドメイン コントローラーを複製したいサイトに移動してください。 サイト名の横にある矢じりをクリックして展開します。 サーバー]を展開します。 レプリケートしたいDCを展開します。
- 右ペインで、サーバーを右クリックし、「今すぐ複製」を選択します。
- DCの数にもよりますが、1秒未満から数分かかることもあります。 完了すると、「Active Directory Domain Services has replicated the connections.」という通知が表示されます。
CLIコマンドによるドメインコントローラーの強制複製
古き良きWindows CMDに慣れ親しんでいる方には、repadminコマンドがお勧めです。 これは、DCの複製を強制的に行う最も簡単な方法です。 もし慣れていないのであれば、この機会にWindows CMDについて学んでみてはいかがでしょうか。
- いずれかの DC にログインし、コマンド プロンプトを開きます。
- 以下のコマンドを入力し、Enter キーを押します。
repadmin /syncall /AdeP
- 情報の羅列が画面上にスクロールしてきます。 最後の行に「SyncAll terminated with no errors.」と表示され、その下にコマンドプロンプトが表示されていれば、DCは正常にレプリケートされています。
PowerShellでドメインコントローラーのレプリケーションを行う
日常生活でPowerShellを使用していないとしたら、それは非常にもったいないことです。 PowerShellを学ぶことは、自分自身のためにとても重要なことです。
これらの手順は通常の PowerShell CLI で行うことができますが、コマンドとその結果をよりわかりやすく表示するために、PowerShell ISE で行います。 ここでは、保存したり、PowerShell のコマンド ラインから呼び出すことができるコマンドレットに変えることができるスクリプトを作成します。
- いずれかの DC にログインし、PowerShell または PowerShell ISE を開きます。
- スクリプトを書く前に、再利用しやすいように force-DCReplication.ps1 のような説明的な名前で保存しておきます。
(Get-ADDomainController -Filter *).Name
DC の名前を返しているのがわかりますか? ここで、その結果を次のコマンドレットにパイプすることができます。 パイプとは、キーボードの Enter キーのすぐ上にある縦線文字 ( | ) のことです。
- 先ほどのコマンドの最後に、以下のコードを入力します。
| Foreach-Object { repadmin /syncall $_ (Get-ADDomain).DistinguishedName /AdeP }
コマンドは、下の画像のようになるはずです。 実行してみてください。 上記の「Force Domain Controller Replication Through GUI」セクションで戻ってきたものと同じメッセージが返されるはずです。 最後に “SyncAll terminated with no errors. “と表示されていれば成功です。
repadminコマンドも使用しているのがわかりますか?
- レプリケーションが本当に完了したことを確認するために、別の行を追加しましょう。 次のコードは、それぞれのDCが最後にレプリケーションされた日時を返します。 このコマンドは、DCが最後にいつレプリケートされたかを知りたい場合に、別の機会に単独で使用することができます。
Get-ADReplicationPartnerMetadata -Target "$env:userdnsdomain" -Scope Domain | Select-Object Server, LastReplicationSuccess
結果は以下の画像のようになります。
- このスクリプトに磨きをかけるために、その出力を少し控えめにしてみましょう。 1行目の最後に、/AdePと終わりのブラケットの間に | Out-Null を入力します。 これにより、そのコマンドレットの結果を出力しないようにします。
Keep’em Replicated
これで、ADのドメインコントローラーを強制的に複製する3つの方法がわかりました。 また、いつでもPowerShellコマンドラインから呼び出すことができる再利用可能なPowerShellスクリプトをまとめました。 最新の DC の変更を、次のスケジュールされたレプリケーションを待つという言い訳はできません。