我尝试获取森林中的所有域。
我可以连接到一个特定的域并像这样获取它的 DirectoryEntry:
DirectoryContext dc =
new DirectoryContext(DirectoryContextType.DirectoryServer, "xx.x.xxx.40", "w28\\administrator", "pwd");
Domain domain = Domain.GetDomain(dc);
DirectoryEntry entry = domain.GetDirectoryEntry();
foreach (DirectoryEntry child in entry.Children)
{
Console.WriteLine(" - " + child.Name);
}
但是,当我尝试通过 Forest 属性获取其他域时。
Forest forest = domain.Forest;
Console.WriteLine("Count: " + forest.Domains.Count); //It crashes here
DomainCollection domains = forest.Domains;
我的应用程序崩溃,异常消息如下所示: System.DirectoryServices.ActiveDirectory.ActiveDirectoryServerDownException:指定的域不存在或无法联系。
在 System.DirectoryServices.ActiveDirectory.Locator.GetDomainControllerInfo(String computerName, String domainName, String siteName, Int64 flags) 在 System.DirectoryServices.ActiveDirectory.DirectoryContext.isCurrentForest() 在 System.DirectoryServices.ActiveDirectory.DirectoryContext.GetServerName() 在系统。 DirectoryServices.ActiveDirectory.DirectoryEntryManager.GetNewDirectoryEntry(String dn) 在 System.DirectoryServices.ActiveDirectory.DirectoryEntryManager.GetCachedDirectoryEntry(String distinctName) 在 System.DirectoryServices.ActiveDirectory.DirectoryEntryManager.ExpandWellKnownDN(WellKnownDN dn) 在 System.DirectoryServices.ActiveDirectory.DirectoryEntryManager.ExpandWellKnownDN( WellKnownDN dn) 在 System.DirectoryServices.ActiveDirectory.Forest.GetDomains() 在 System.DirectoryServices。ActiveDirectory.Forest.get_Domains()
请帮我。
提前致谢。