gpt4 book ai didi

检查 Active Directory 域 Controller 是否已启动并正在运行的 C# 方法

转载 作者:行者123 更新时间:2023-12-03 23:21:00 24 4
gpt4 key购买 nike

我想增强我正在编写的 C# 程序,以便它可以利用全局目录 DC 列表中的任何一个(如果其中一个或多个脱机)。我想编写一个返回 bool 值的方法,该方法取决于 ADDS 是否在目标服务器上运行(不仅仅是服务器是否可 ping 通):

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

最佳答案

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

一、在服务器上为RootDSE分区创建DirectoryEntry,捕获COMException并检查错误码

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

二、创建到服务器的 LdapConnection,调用 Bind 方法,捕获 LdapException 并检查错误代码
using (var connection = new LdapConnection...)
{
connection.Bind()
}

三、调用 DomainController.GetDomainController 方法,并捕获 ActiveDirectoryObjectNotFoundException
var dc = DomainController.GetDomainController(new DirectoryContext...

P. S. 根据我的经验,DomainController.GetDomainController 可能会挂起,所以整个程序停止响应(它发生在 1000 个 AD 环境中)。创建了一个版本的方法,它异步调用 DomainController.GetDomainController 并在挂起时抛出 TimeoutException

关于检查 Active Directory 域 Controller 是否已启动并正在运行的 C# 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39920908/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com