ドメインコントローラーで「Hosted BranchCache」を有効化しようとした際に発生するエラーは意外と情報が限られており、初めて直面すると戸惑いがちです。しかし正しい手順を理解し、公式ドキュメントを活用することで解決や回避が可能です。本記事では、DC(ドメインコントローラー)とHosted BranchCacheを併用する際に押さえておきたいポイントや対策方法を詳しく解説します。
ドメインコントローラー上でのHosted BranchCacheとは
ドメインコントローラーはActive Directoryドメイン環境を支える重要な役割を担うサーバーです。一方で、BranchCacheはネットワーク越しのコンテンツ配布を効率化するための機能であり、大きく「分散キャッシュ(Distributed Cache)モード」と「ホスト型(Hosted Cache)モード」に分かれます。
Hosted BranchCacheモードでは、データを集中管理する“ホストサーバー”を用意し、遠隔拠点からのファイルアクセスを高速化します。しかし、このホスト型BranchCacheサーバーをドメインコントローラー上で兼用しようとすると、一部のコマンドが失敗することがあります。
「Enable-BCHostedServer -RegisterSCP」実行時のエラー
Hosted BranchCacheを有効化する基本的な手順として、以下のPowerShellコマンドがよく案内されます。
Enable-BCHostedServer -RegisterSCP
ところが、書き込み可能なドメインコントローラー上でこのコマンドを実行すると、次のようなエラーメッセージが表示されることがあります。
Hosted cache SCP registration is not supported on writable domain controllers
これは「ドメインコントローラーでは、SCP(サービス接続ポイント)の登録をサポートしていない」という内容を意味します。Microsoftの設計上、SCP登録は通常のドメイン参加済みサーバー(非DC)を対象として想定されているため、DCでは制限がかかっているのです。
エラーの意味と背景
SCP(サービス接続ポイント)とは、Active Directory内に格納されるオブジェクトで、クライアントがサービスを検出するための情報を持ちます。Hosted BranchCacheモードでサーバーを立ち上げる際、クライアントがドメインコントローラーからSCPを参照して“ホストサーバー”の場所を特定しに行く仕組みが用意されています。しかし、DC自体をSCPの登録先とすることはMicrosoftの推奨構成ではありません。
サーバーマネージャーからの機能追加による有効化
一部のケースでは、サーバーマネージャーからBranchCache(ホスト型)の役割を追加しただけで「Get-BCStatus」コマンドを実行すると、すでにホスト型BranchCacheが「有効」と表示されることがあります。具体的には以下のように表示される場合です。
PS C:\> Get-BCStatus
HostedCacheServerIsEnabled : True
HostedCacheScpRegistrationEnabled : False
...
この表示から分かるように、ホスト型BranchCache自体は“機能としては有効”になっているものの、SCP登録は無効のままです。ドメインコントローラーでHosted BranchCacheを利用しようとする場合、上記のように「SCP登録は行われないが機能だけは有効にできる」といった状態となる可能性があります。
動作上の影響
SCP登録が行われていない場合、クライアントが自動的に“ホストサーバー”を見つける手段が限定されます。通常はグループポリシーで「ホストサーバーのFQDN」をクライアントに指定することで運用することも可能ですが、Microsoftとしてはセキュリティや運用負荷などの面からドメインコントローラーを兼務サーバーにすることを推奨していません。
公式ドキュメントの推奨事項と制約
Microsoftの公式ドキュメント「BranchCache Hosted Cache Mode Deployment Overview」(英語)などを確認すると、Hosted Cacheサーバーは通常のドメイン参加済みサーバー(非ドメインコントローラー)として構築することが推奨されています。ドキュメント上では「DCとHosted Cacheを兼務してはならない」と明言されていない部分もありますが、少なくとも「-RegisterSCP」コマンドを使った標準的な導入手順はサポートされていないことが明確です。
公式サポートの観点
ドメインコントローラーに複数のロールを持たせる場合、サポートポリシーに反するかどうかはMicrosoft側の検証範囲や運用実績に依存します。BranchCache自体は動作するかもしれませんが、問題が発生した際に公式サポートから「DC上でのホスト型BranchCacheはサポート外」と言われる可能性も否定できません。特にSCPまわりのエラーはサポートからも「推奨構成ではない」という回答に留まるケースがあります。
実際にどう運用すればいいのか
それでは、ドメインコントローラーでHosted BranchCacheを使用したい要件がある場合、どのようにアプローチすればよいのでしょうか。以下に現実的な方法をいくつか示します。
方法1: 専用サーバーを用意して分離運用
最も無難で公式にも推奨度が高いのが、ドメインコントローラーとホスト型BranchCacheサーバーを別々に立てる方法です。企業環境であれば以下のような構成を検討してみてください。
- 既存のドメインコントローラー群はそのまま運用
- 別途、Windows Serverを1台(もしくは複数台)用意
- そのサーバーに「Enable-BCHostedServer -RegisterSCP」を実行してSCP登録を行う
- クライアントはSCPやグループポリシーを介して“ホストサーバー”にアクセス
これにより、ドメインコントローラーの負荷を増やすことなく、安定したBranchCache環境を構築できます。
メリット・デメリット
- メリット: 公式推奨に近い運用であり、障害切り分けが容易。将来的なサポート面で安心感がある。
- デメリット: サーバーの台数が増える。導入コストや管理工数も若干増大。
方法2: DC上で無理に有効化する場合の留意点
やむを得ない事情でドメインコントローラーと同居させるケースもゼロではありません。小規模環境などで、どうしてもサーバー台数を増やせない場合が該当します。その際は以下のポイントに注意してください。
- SCP登録は基本的に行えない
「Enable-BCHostedServer -RegisterSCP」はエラーになるため、SCPによる自動検出は諦めるか、手動でActive Directoryを編集する必要がある可能性が高いです。 - グループポリシーによる設定を活用
クライアント側に「Hosted CacheサーバーのFQDN」をグループポリシーで明示的に指定することで運用できます。設定パスは「コンピューターの構成 > ポリシー > 管理用テンプレート > ネットワーク > BranchCache」の中にあります。 - Event LogやPowerShellでの状態監視
DCで運用する場合は、BranchCache関連のイベントログ(アプリケーションログやMicrosoft-Windows-BranchCacheログなど)をこまめにチェックします。なにか問題が生じた場合の原因追及を容易にするためです。 - 将来的な変更やアップデートの影響
ドメインコントローラーはセキュリティ更新や機能更新が頻繁に行われます。それらの変更がHosted BranchCache機能に影響を及ぼす可能性があるため、常に動作検証やバックアップ手順を用意しておくことが重要です。
具体的なコマンド例と設定方法
以下にHosted BranchCacheを構成するときのPowerShellコマンド例を示します。ドメインコントローラーでは推奨されませんが、参考までにご紹介します。
# Hosted BranchCacheの機能がインストールされているか確認
Get-WindowsFeature BranchCache
# もしインストールされていなければ
Install-WindowsFeature BranchCache –IncludeManagementTools
# Hosted BranchCacheを有効化
Enable-BCHostedServer -Certificate <Thumbprint>
# ドメインコントローラーの場合、このコマンドはエラーになる
Enable-BCHostedServer -RegisterSCP
上記のように、「-RegisterSCP」のオプションを付けない場合、DC上でも機能自体は“有効化”される可能性があります。ただし、クライアントがSCPを通してホスト型サーバーを自動検出することは期待できないため、グループポリシーなどの別手段でホストサーバーの情報を通知する必要があります。
グループポリシー設定例
グループポリシーを使ってクライアントにホスト型BranchCacheサーバーを教示する場合の流れは以下の通りです。
- 「グループポリシーの管理」を起動
- 適用したいOU(またはドメイン全体)に新規GPOを作成
- GPOを開き「コンピューターの構成 > ポリシー > 管理用テンプレート > ネットワーク > BranchCache」を選択
- 「ホスト型キャッシュ サーバーを指定する」を有効化し、サーバーのFQDNを入力
- GPOをクライアントに適用
これによりクライアントはActive DirectoryのSCPからではなく、GPOで指定されたサーバーをホスト型BranchCacheとして扱うようになります。
検証環境でのテストを推奨
本番環境のドメインコントローラーでいきなりBranchCacheを構成するのはリスクが高いため、まずはテスト環境を作り、以下の項目をチェックすることをおすすめします。
- クライアントが想定どおりにBranchCacheを利用できるか
- グループポリシーによる設定の反映状況
- イベントログにエラーが出ていないか
- SCP登録しない場合のクライアントの検出方法に問題がないか
こうした検証を踏まえて本番運用に移行することで、トラブルのリスクを最小限に抑えられます。
まとめ: ドメインコントローラー上での運用は原則非推奨
ドメインコントローラー上にHosted BranchCacheを導入しようとすると、SCP登録に関するエラーが発生し、運用面でもサポートやセキュリティなど多くの懸念が残ります。Microsoftのドキュメントでは直接禁止とは書かれていないケースが多いものの、実際に「-RegisterSCP」オプションがエラーを吐くことからも分かるように、想定された利用形態ではありません。
専用のサーバーを用意できない環境の場合は、グループポリシーや手動設定によってSCP機能なしでホスト型BranchCacheを利用できます。ただし、本番環境ではなるべく分離を行い、将来的な拡張やトラブルシューティングを容易にしておくのがベストプラクティスです。
企業システムの中核であるドメインコントローラーは役割が非常に重く、運用を誤ると大きな影響が及びます。BranchCacheの利便性も高いですが、リスクとメリットを天秤にかけ、無理のない構成を検討することを強く推奨します。
コメント