1

我希望能够确定一个特定的域控制器是否是只读的。我知道我可以做这样的事情来获得一个可写的 DC:

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

但是给定一个 DomainController 对象,有没有办法确定该 DC 是否可写?

我问的原因是我想尝试选择一个首选域控制器,它是 1. 可写 2. 在我的站点中和 3. 全局目录。似乎没有找到具有所有这些属性的服务器的好方法。

4

2 回答 2

5

只读域控制器和可写域控制器之间的一个区别是所有只读域控制器的属性都primaryGroupID设置为 521(这是 Active Directory 中“只读域控制器”内置组的 RID)。可写域控制器已primaryGroupID设置为 516(“域控制器”组)。

只读域控制器的主要组不能轻易更改(Active Directory 不允许这样做),因此您应该可以安全地假设所有 RODC:s 都将该属性设置为 521。

于 2009-07-15T09:49:06.120 回答
0

它并不优雅,但...

如果你有 DomainController 对象,你可以这样做:

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

这应该确定特定域控制器是否可写。

于 2009-06-10T18:10:03.083 回答