Windows Server 2019/2022に読み取り専用ドメインコントローラー(RODC)をインストールして構成する方法
読み取り専用ドメインコントローラー(RODC:Read-Only Domain Controller)は、Windows Server 2008で初めて導入された機能です。RODCの主な目的は、物理的なセキュリティ確保が難しい支店や遠隔オフィスに、安全にドメインコントローラー(AD DS役割サーバー)を設置することです。RODCはActive Directoryデータベースの読み取り専用コピーを保持するため、ドメインコントローラーのホストに物理的にアクセスできたとしても、誰もAD内のデータ(ドメイン管理者パスワードのリセットを含む)を変更することはできません。
この記事では、Windows Server 2022/2019をベースに新しい読み取り専用ドメインコントローラーをインストールする方法と、その管理方法について解説します。
Active Directoryにおける読み取り専用ドメインコントローラー(RODC)とは?
ここでは、通常の書き込み可能なドメインコントローラー(RWDC)と比較した、RODCの主な特徴を紹介します。
- RODCはADデータベースの読み取り専用コピーを保持します。そのため、このドメインコントローラーのクライアントはデータを変更できません。
- RODCはADデータやSYSVOLフォルダーを他のドメインコントローラー(RWDC)へレプリケートしません。一方向レプリケーションのみが使用されます。
- RODCは、ADオブジェクトのパスワードハッシュやその他の機密情報を含む属性を除く、ADデータベースのほぼ完全なコピーを保持します。この属性セットはフィルター属性セット(FAS:Filtered Attribute Set)と呼ばれます。ms-PKI-AccountCredentials、ms-FVE-RecoveryPassword、ms-PKI-DPAPIMasterKeysなどの属性がこれに該当します。必要に応じて、LAPS使用時に平文で保存されるコンピューターパスワードが格納されるms-MCS-AdmPwd属性など、他の属性をこのセットに追加することも可能です。
- RODCがユーザーから認証要求を受け取った場合、その要求はRWDCへ転送されます。
- RODCは一部のユーザーの資格情報をキャッシュできます(認証の高速化につながり、RWDCへの接続がない場合でもユーザーがドメインコントローラーで認証できるようになります)。
- 管理者以外のユーザー(例:支店のシステム運用担当者)に対しても、RODCへの管理アクセス権やRDPアクセス権を付与できます。
- RODC上のDNSサービスは読み取り専用モードで動作します。
RODC展開の要件
- サーバーには静的IPアドレスを割り当てる必要があります。
- Windowsファイアウォールを無効化するか、DC間およびクライアントとのトラフィックが通過できるよう正しく構成する必要があります。
- 最寄りのRWDCをDNSサーバーとして指定する必要があります。
- RODCは、Windows ServerのFull GUIエディションとServer Coreエディションのどちらにもインストールできます。
- RODCをRWDCと同じADサイトに配置しないでください。
サーバーマネージャーGUIを使用したRODCのインストール
サーバーマネージャーコンソールを開き、Active Directoryドメインサービス(AD DS)役割を追加します(追加コンポーネントと管理ツールのインストールに同意してください)。

新しいDCの設定を指定する際には、「既存のドメインにドメインコントローラーを追加する」オプションを選択し、ドメイン名と、必要に応じてドメイン管理者権限を持つユーザーアカウントの資格情報を入力します。

DNSサーバー、グローバルカタログ(GC)、およびRODCの各機能をインストールするよう指定します。次に、新しいコントローラーを配置するサイトと、DSRM(ディレクトリサービス復元モード)アクセス用のパスワードを選択します。

続いて、ドメインコントローラーへの管理アクセスを委任したいユーザーと、RODCへのパスワードレプリケーションを許可または拒否するアカウント/グループの一覧を指定します(この作業は後から行うこともできます)。

ADデータベースのデータを任意のDCからレプリケートできるよう指定します。
Replicate from -> Any domain controller

次に、NTDSデータベース、ログ、SYSVOLフォルダーへのパスを指定します(必要であれば、後から別のドライブへ移動することも可能です)。

すべてのオプションを確認したら、AD DS役割をインストールします。

ステージングインストール(事前作成アカウント)によるRODC展開
あるいは、ステージング(Staged)機能を使用してRODCを展開することもできます。これは、ADUCコンソールでRODCのコンピューターアカウントを事前に作成し、基本設定を行う方法です。手順としては、Domain Controllersコンテナーを右クリックし、「読み取り専用ドメインコントローラーアカウントの事前作成」を選択します。

同じ名前のサーバーにAD DS役割をインストールすると、次のメッセージが表示されます。
A Pre-created RODC account that matches the name of the target server exists in the directory. Choose whether to use this existing RODC account or reinstall this domain controller.
事前に作成したRODCオブジェクトを使用するには、「Use existing RODC account」オプションを選択します。

役割のインストール完了後にサーバーを再起動すると、RODCコントローラーが完成します。その後、ドメインコントローラーの正常性を確認しておきましょう。
ADUCスナップイン(dsa.msc)をRODCに接続すると、新しいADオブジェクトを作成するボタンがすべてグレーアウトされます。また、読み取り専用ドメインコントローラー上ではADオブジェクトの属性を変更できません。ただし、検索を含むActive Directoryコンソールでのその他の操作は、通常どおり実行できます。

PowerShellを使用したWindows Server読み取り専用DCの展開
PowerShellを使用して新しいRODCを展開するには、まずAD DS役割とPowerShell用AD DSモジュールをインストールします。
Add-WindowsFeature AD-Domain-Services,RSAT-AD-AdminCenter,RSAT-ADDS-Tools
次のコマンドでRODCをインストールできます。
Install-ADDSDomainController -ReadOnlyReplica -DomainName woshub.com -SiteName MUN_Branch1_RO_Site -InstallDns:$true -NoGlobalCatalog:$false
Windows Server Coreへの読み取り専用ドメインコントローラーのインストールにも、PowerShellが使用されます。
インストールが完了すると、コマンドレットによりサーバーの再起動を求められます。
Active Directory PowerShellモジュールのGet-ADDomainControllerコマンドレットを使用して、ドメイン内のDCを一覧表示します。
Get-ADDomainController -Filter * | Select-Object Name,IsReadOnly
読み取り専用ドメインコントローラーの場合、IsReadOnly属性の値はTrueになります。
ドメイン内のすべてのRODCを一覧表示するには、次のコマンドを実行します。
Get-ADDomainController –filter {IsReadOnly –eq $true}
ドメインのRODCアカウントを先に事前作成したい場合(ステージング展開)は、次のコマンドを使用します。
Add-ADDSReadOnlyDomainControllerAccount -DomainControllerAccountName MUN-RODC01 -DomainName woshub.com -DelegatedAdministratorAccountName "woshub\mbak" -SiteName MUN_Branch1_RO_Site
Windows ServerホストをDCに昇格させる際は、次のコマンドを使用します。
Install-ADDSDomainController -DomainName woshub.com -Credential (Get-Credential) -LogPath "C:\Windows\NTDS" -SYSVOLPath "C:\Windows\SYSVOL" -ReplicationSourceDC "MUN-DC01.woshub.com" –UseExistingAccount
RODCに接続した状態では、PowerShellを使ってADオブジェクトの属性を変更することはできません。RODCのあるサイトからオブジェクトの属性を変更したい場合は、Set-ADUser、Set-ADComputer、New-ADUserなどのPowerShellコマンドレットで利用可能な-Serverパラメーターを使用して、最寄りのRWDCのアドレスを指定してください。
RODCのパスワードレプリケーションポリシーと資格情報キャッシュ
各RODCでは、このドメインコントローラーへのパスワードハッシュのレプリケーションを許可または拒否するユーザー、コンピューター、サーバーの一覧を指定できます。
パスワードがRODCのキャッシュに保存されているすべてのコンピューター、ユーザー、サーバーは、RWDCへの接続がない場合でも、このドメインコントローラーに対して認証を行えます。
デフォルトでは、ドメイン内に2つの新しいグローバルグループが作成されます。
- Allowed RODC Password Replication Group(RODCパスワードレプリケーションの許可グループ)
- Denied RODC Password Replication Group(RODCパスワードレプリケーションの拒否グループ)
デフォルトでは最初のグループは空で、2番目のグループには特権セキュリティグループが含まれています。これらのグループのパスワードが漏洩・悪用されるのを防ぐため、RODCへのレプリケーションやキャッシュは禁止されています。デフォルトで含まれるグループは以下のとおりです。
- Group Policy Creator Owners
- Domain Admins
- Cert Publishers
- Enterprise Admins
- Schema Admins
- krbtgtアカウント
- Account Operators
- Server Operators
- Backup Operators

「RODCパスワードレプリケーションの許可」グループには、通常、RODCが設置されている支店オフィスのユーザーが含まれます。
ドメイン内に複数のRODCを展開する場合は、RODCごとに個別のグループを作成するのが最善です。ADUCコンソールのサーバープロパティにある「Password Replication Policy」タブで、グループをRODCに関連付けることができます。

「Advanced Password Replication Policy for RODC_name」画面では、以下の情報を確認できます。
- Accounts whose passwords are stored on this Read-Only Domain Controller — このRODCにパスワードがキャッシュされているユーザーおよびコンピューターの一覧
- Accounts that have been authenticated to this Read-Only DC — 現在この読み取り専用ドメインコントローラーで認証されているユーザーおよびコンピューターの一覧

「Resultant Policy」タブでは、ユーザーアカウントを選択して、そのパスワードがRODCにキャッシュされるかどうかを確認できます。
RODCのグループはPowerShellでも管理できます。ADグループ内のユーザーを一覧表示するには:
Get-ADGroupMember -Identity "Denied RODC Password Replication Group" | ft Name, ObjectClass
特定のActive Directory組織単位(OU)から有効なユーザーをすべてRODCグループに追加するには:
Get-ADUser -SearchBase 'OU=MUN_Branch1,DC=woshub,DC=com' -Filter {Enabled -eq "True"} | ForEach-Object {Add-ADGroupMember -Identity 'Allowed RODC Password Replication Group' -Members $_ -Confirm:$false }
OUからRODCへユーザーのパスワードキャッシュを事前に投入(プリフェッチ)するには、次のPowerShellスクリプトを使用します。
$usrs = Get-ADUser -SearchBase 'OU= MUN_Branch1,DC=woshub,DC=com' -Filter {Enabled -eq "True"}
foreach ($usr in $usrs) {
Get-ADObject -identity $usr | Sync-ADObject -Source MUN-DC01 ‑Destination MUN-RODC1 -PasswordOnly
}
パスワードがRODCのキャッシュに存在するユーザーとコンピューターを一覧表示するには:
Get-ADDomainControllerPasswordReplicationPolicyUsage -Identity MUN-RODC1 ‑RevealedAccounts
特定のユーザーのパスワードだけをRODCのキャッシュから削除することはできません。ただし、ADUCスナップインまたはSet-ADAccountPassword PowerShellコマンドレットを使用してユーザーのパスワードをリセットすれば、このキャッシュを無効化することができます。
-
Windows 10にXAMPPをインストールして設定する方法【初心者向け完全ガイド】
Windows 10へのXAMPPのインストールと設定:PHPでWebサイトを開発する際には、PHPの開発環境を提供し、バックエンドとフロントエンドを接続するためのツールが必要になります。ローカル環境でWebサイトをテストできるソフトウェアはXAMPPやMongoDBなど多数存在しますが、それぞれに長所と短所があります。このガイドでは、Windows 10向けのXAMPPに焦点を当て、インストールから設定までの手順を詳しく解説します。 XAMPPとは? XAMPPは、Apache Friendsによって開発されたオープンソースのクロスプラットフォーム対応Webサーバーです。PHPを使ってWeb
-
Windows 10・8.1・7でFTPサーバーを構築・設定する完全ガイド(2022年最新版)
ネットワーク経由でファイルを共有・アクセスするために、Windows 10のFTPサーバーを設定したいとお考えですか?この記事では、Windows 10や8.1でFTPサーバーを作成する方法を詳しく解説します。さらに、FTPサーバー経由でファイルを共有する方法、LAN・WAN経由でどこからでもアクセスする方法、ユーザー名とパスワードによるアクセス制限や匿名アクセスの設定方法についてもご紹介します。内部ネットワーク用か外部ネットワーク用か、FTPサーバーの用途に応じて適切な設定を選びましょう。 FTPは「File Transfer Protocol(ファイル転送プロトコル)」の略で、クライアント