我希望能够确定特定域控制器是否为只读。我知道我可以做这样的事情来获得一个可写的DC:
using( Domain d = Domain.GetCurrentDomain() )
{
DomainController dc = d.FindDomainController(
"mysitename", LocatorOptions.WriteableRequired);
}
但是给定一个DomainController对象是否有办法确定该DC是否可写?
我问的原因是我想尝试选择一个首选的域控制器1.可写2.在我的站点和3.全局目录。似乎找不到具有所有这些属性的服务器的好方法。
答案 0 :(得分:5)
只读和可写域控制器之间的一个区别是,所有只读域控制器都将属性primaryGroupID
设置为521(这是“只读域控制器”内置组的RID在Active Directory中)。可写域控制器将primaryGroupID
设置为516(“域控制器”组)。
无法轻松更改只读域控制器的主要组(Active Directory不允许更改),因此您可以安全地假设所有RODC:s都将该属性设置为521。
答案 1 :(得分:0)
它不优雅,但是......
如果您有DomainController对象,则可以执行以下操作:
bool isWritable = true;
try
{
using (Domain d = Domain.GetCurrentDomain())
var dc = d.FindDomainController(theDomainController.Name, LocatorOptions.WriteableRequired);
}
catch(ActiveDirectoryObjectNotFoundException)
{
isWritable = false;
}
这应该确定特定的域控制器是否可写。