2009-06-10 12 views
1

特定のドメインコントローラが読み取り専用であるかどうかを判断できます。.NETで読み取り専用ドメインコントローラを検出しますか?

using(Domain d = Domain.GetCurrentDomain()) 
{ 
    DomainController dc = d.FindDomainController(
     "mysitename", LocatorOptions.WriteableRequired); 
} 

しかし、DCが書き込み可能であるかどうかを決定する方法があるドメインコントローラオブジェクトを指定:私は、書き込み可能なDCを取得するには、このようなものを行うことができます知っていますか?

私が求めているのは、1つの優先ドメインコントローラを選択しようとしているということです。書き込み可能です。2.私のサイトで、3.グローバルカタログです。これらすべての属性を持つサーバーを見つける良い方法はないようです。

答えて

5

読み取り専用ドメインコントローラの違いの1つは、すべての読み取り専用ドメインコントローラの属性がprimaryGroupIDが521(Active Directoryの "読み取り専用ドメインコントローラ"ビルトイングループのRID)に設定されていることです)。書き込み可能なドメインコントローラはprimaryGroupIDが516( "ドメインコントローラ"グループ)に設定されています。

読み取り専用ドメインコントローラのプライマリ・グループを容易に変更することはできません(Active Directoryがそれを許可しません)ので、あなたはすべてのRODCがいると仮定しても安全である必要があります。■521

0

それはあなたがドメインコントローラオブジェクトを持っている場合は、あなたが行うことができます

エレガントではありませんが、...:

bool isWritable = true; 
try 
{ 
    using (Domain d = Domain.GetCurrentDomain()) 
     var dc = d.FindDomainController(theDomainController.Name, LocatorOptions.WriteableRequired); 
} 
catch(ActiveDirectoryObjectNotFoundException) 
{ 
    isWritable = false; 
} 

これは、特定のドメインコントローラが書き込み可能かどうかを判断する必要があります。

+0

とその属性を設定しています動作しません。 FindDomainControllerの最初のパラメータは、ドメインコントローラのホスト名ではなく検索するサイトの名前です。このコードを試すと、すべてのドメインコントローラに対してisWritable = falseが設定されます。 – Skrymsli

関連する問題