Windows Server 2008 で "Adprep /rodcprep" コマンドを実行すると、エラー メッセージ "Adprep は、パーティション DC=DomainDnsZones,DC=Contoso,DC=com のレプリカに接続できませんでした" が表示される

文書翻訳 文書翻訳
文書番号: 949257 - 対象製品
すべて展開する | すべて折りたたむ

現象

Windows Server 2008 で Adprep /rodcprep コマンドを実行すると、次のエラー メッセージが表示されます。
Adprep は、パーティション DC=DomainDnsZones,DC=Contoso,DC=com のレプリカに接続できませんでした。
Adprep は、パーティション DC=DomainDnsZones,DC=Contoso,DC=com に対する操作に失敗しました。スキップして、次のパーティションに進みます。

Adprep は、パーティション DC=ForestDnsZones,DC=Contoso,DC=com のレプリカに接続できませんでした。
Adprep で LDAP エラーが発生しました。エラー コード: 0x0。サーバーの拡張エラー コード: 0x0、サーバーのエラー メッセージ: (null)。

Adprep は、パーティション C=ForestDnsZones,DC=Contoso,DC=com に対する操作に失敗しました。スキップして、次のパーティションに進みます。
Adprep は終了しましたが、エラーがありました。一部のパーティションが更新されていません。

原因

この問題が発生するのは、Adprep /rodcprep コマンドが、フォレストの各アプリケーション パーティションのインフラストラクチャ マスターに接続しようとするときです。コマンドはこの処理を行い、読み取り専用ドメイン コントローラー (RODC) レプリケーションに必要なアクセス許可を設定します。次の条件のいずれかに該当する場合、Adprep /rodcprep コマンドは失敗します。
  • エラー メッセージで参照されているパーティション (複数の場合あり) が存在しない。
  • 参照されているパーティション (複数の場合あり) のインフラストラクチャ マスターが強制的に降格されているかオフラインである。

解決方法

パーティションが存在しない場合にこの問題を解決するには、Dsmgmt ツールの "remove nc" パラメーターを使用して、孤立したパーティションのメタデータ クリーンアップを実行します。詳細については、以下のマイクロソフト Web サイトを参照してください。
http://technet.microsoft.com/en-us/library/cc730970(WS.10).aspx
指定されているパーティションが存在する場合は、パーティションのオンラインであるインフラストラクチャの役割所有者を指定します。これを行うには、「詳細」に記載されているように、オブジェクト上の fSMORoleOwner 属性を手動で変更します。

詳細

次のサンプル スクリプトでは、指定された、ドメインでない名前付けコンテキスト (NDNC) のインフラストラクチャ オブジェクト上の fSMORoleOwner 属性がアクティブまたは接続可能なサーバーに変更されます。このサンプル内の NDNC は、DomainDnsZones,DC=contoso,DC=com NDNC 名前付けコンテキストです。スクリプトでは次のコマンドを使用します。
cscript fixfsmo.vbs DC=DomainDnsZones,DC=contoso,DC=com
-------fixfsmo.vbs------------------
const ADS_NAME_INITTYPE_GC = 3
const ADS_NAME_TYPE_1779 = 1
const ADS_NAME_TYPE_CANONICAL = 2

set inArgs = WScript.Arguments

if (inArgs.Count = 1) then
' コマンド ラインの引数は、使用する NDNC (DN 形式) であるとします。
NdncDN = inArgs(0)
Else
Wscript.StdOut.Write "usage:cscript fixfsmo.vbs NdncDN"
End if

if (NdncDN <> "") then

' NDNC の DN 形式を DNS ドット形式に変換します。
Set objTranslator = CreateObject("NameTranslate")
objTranslator.Init ADS_NAME_INITTYPE_GC, ""
objTranslator.Set ADS_NAME_TYPE_1779, NdncDN
strDomainDNS = objTranslator.Get(ADS_NAME_TYPE_CANONICAL)
strDomainDNS = Left(strDomainDNS, len(strDomainDNS)-1)
     
Wscript.Echo "DNS name:" & strDomainDNS

' この NDNC をホストし、オンラインであるドメイン コントローラーを検索します。
set objRootDSE = GetObject("LDAP://" & strDomainDNS & "/RootDSE")
strDnsHostName = objRootDSE.Get("dnsHostName")
strDsServiceName = objRootDSE.Get("dsServiceName")
Wscript.Echo "Using DC " & strDnsHostName

' 現在のインフラストラクチャ FSMO を取得します。
strInfraDN = "CN=Infrastructure," & NdncDN
set objInfra = GetObject("LDAP://" & strInfraDN)
Wscript.Echo "infra fsmo is " & objInfra.fsmoroleowner

' 現在の FSMO 所有者が削除されている場合、FSMO 所有者をこのドメイン コントローラーに設定します。

if (InStr(objInfra.fsmoroleowner, "\0ADEL:")> 0) then

' FSMO 所有者をこのドメイン コントローラーに設定します。
objInfra.Put "fSMORoleOwner",  strDsServiceName
objInfra.SetInfo

' FSMO 所有者をリード バックします。
set objInfra = GetObject("LDAP://" & strInfraDN)
Wscript.Echo "infra fsmo changed to:"& objInfra.fsmoroleowner

End if

End if
パーティションのインフラストラクチャ マスターを確認するには、対象の名前付けコンテキスト ルートの下にあるインフラストラクチャ オブジェクト上の fSMORoleOwner 属性を照会します。たとえば、DC=DomainDnsZones,DC=contoso,DC=com パーティションのインフラストラクチャ マスターを確認するには、CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com 名前付けコンテキスト ルート上の fSMORoleOwner 属性を照会します。同様に、DC=ForestDnsZones,DC=contoso,DC=com パーティションのインフラストラクチャ マスターを確認するには、CN=Infrastructure,DC=ForestDnsZones,DC=contoso,DC=com 名前付けコンテキスト ルート上の fSMORoleOwner 属性を照会します。

このような照会を実行するには、LDP ツール、Active Directory Service Interfaces (ADSI) 編集ツール、ldifde ツールなどのツールを使用することができます。たとえば、次のような照会では Idifde ツールを使用します。
ldifde -f Infra_DomainDNSZones.ldf -d "CN=Infrastructure,DC=DomainDnsZones,DC=contoso,DC=com" -l fSMORoleOwner
この照会により、DC=DomainDnsZones,DC=contoso,DC=com パーティションのインフラストラクチャ マスターの役割所有者が Infra_DomainDNSZones.ldf ファイルに返されます。

注:: フォレストに悪影響を及ぼすことなく、Adprep /rodcprep コマンドを複数回実行することができます。rodcprep コマンドの以前の実行で完了した処理は繰り返されません。

孤立した環境で rodcprep コマンドを実行しようとする場合、処理が成功するためには、各ドメインおよび各アプリケーション ディレクトリ パーティションのインフラストラクチャ マスターがその環境の内部で使用できる必要があります。

プロパティ

文書番号: 949257 - 最終更新日: 2009年12月23日 - リビジョン: 2.1
この資料は以下の製品について記述したものです。
  • Windows Server 2008 for Itanium-Based Systems
  • Windows Server 2008 Datacenter
  • Windows Server 2008 Enterprise
  • Windows Server 2008 Datacenter without Hyper-V
  • Windows Server 2008 Enterprise without Hyper-V
  • Windows Server 2008 Standard without Hyper-V
  • Windows Server 2008 Standard
キーワード:?
kbtshoot kbprb KB949257
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com