2009-06-10 1 views
1

Я хочу, чтобы определить, является ли конкретный контроллер домена доступным только для чтения. Я знаю, что может делать такие вещи, как это, чтобы получить записываемый DC:Определить контроллер домена только для чтения с .NET?

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

Но данный объект DomainController есть способ, чтобы определить, что ли DC это записываемый?

Причина, по которой я прошу, состоит в том, что я хочу попробовать выбрать предпочтительный контроллер домена, который является 1. Записываемый 2. На моем сайте и 3. глобальный каталог. Кажется, что нет хорошего способа найти сервер со всеми этими атрибутами.

ответ

5

Одно из отличий между контроллерами только для чтения и Writable Domain Controllers заключается в том, что все контроллеры домена только для чтения имеют атрибут primaryGroupID, установленный на 521 (который является RID для встроенной группы «Только для чтения») в Active Directory). У контроллеров Writable Domain primaryGroupID установлено значение 516 (группа «Контроллеры домена»).

Основная группа для только для чтения контроллера домена не может быть легко изменен (Active Directory не допустит его), так что вы должны быть с уверенностью предположить, что все RODC: s есть этот атрибут установлен в 521.

0

Это не шикарно, но ...

Если у вас есть объект DomainController, вы можете сделать:

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

Смежные вопросы