c#方法检查Active Directory域控制器是否已启动并运行

本文关键字:是否 启动 运行 控制器 域控 方法 检查 Active Directory | 更新日期: 2023-09-27 18:11:59

我想增强我正在编写的c#程序,以便它可以在一个或多个Global Catalog dc离线时利用它们列表中的任何一个。我想写一个返回bool值的方法,这取决于add是否在目标服务器上运行(而不仅仅是服务器是否可ping通):

public bool DC_is_Alive(string DomainControllerFQDN) 
{
...
}

c#方法检查Active Directory域控制器是否已启动并运行

您可以使用以下方法之一:

。在服务器上创建DirectoryEntry到RootDSE分区,捕获COMException并检查错误代码

using (var entry = new DirectoryEntry("LDAP://serverFqdn/RootDSE"))
{
    entry.RefreshCache();
}

二世。创建到服务器的LdapConnection,调用Bind方法,捕获LdapException并检查错误码

using (var connection = new LdapConnection...)
{
    connection.Bind();
}

III。DomainController打电话。方法,并捕获ActiveDirectoryObjectNotFoundException

var dc = DomainController.GetDomainController(new DirectoryContext...);

p。根据我的经验,DomainController。GetDomainController可能挂起,因此整个程序停止响应(1000个AD环境中有1个会发生这种情况)。创建方法的一个版本,它调用DomainController。GetDomainController异步并在挂起

时抛出TimeoutException