连续检查到域控制器的LDAP连接(LDAP心跳检查)

开发通过时间表任务运行的脚本; 它的目的是针对less数域控制器,并连续(每2秒)做一个针对特定DC的ldap查询,并将输出转储到csv查找。实质上,我正在执行以下步骤。

$root = [ADSI]"LDAP://CN=$TargetDCName,OU=Domain Controllers,DC=Fabricom,DC=com" $search = [adsisearcher]$root $Search.Filter = "(&(objectClass=computer))" $Search.SearchScope = "base" $Obj = $Search.Findone() $Obj = $Obj.Path $DateFormatted = Get-Date -uformat "%Y-%m-%d_%I-%M-%S-%p" $Data = $DateFormatted + "," + $TargetDCName+ "," + "$Obj" Add-Content -Path $Path -Value $Data 

现在我越来越怀疑了; 1.)我上面做的事情是否与LDAP连通性检查一样有意义,因为我使用与ROOT / Base相同的DC来查询DC(以上代码是否确认LDAP连接存在于来自任何应用程序的特定DCconfiguration正确吗?)

2.)这个问题是关于powershell,如何获取PowerShell中的LDAP错误日志? 我想testing一个不存在的DC或closures的DC,我应该期待什么日志事件以及如何捕获它。

3.)与问题2相同,如果DC有复制问题,是否会影响LDAP连接? 应该logging什么日志,以及如何? 以下是一些复制错误,这些事件是否会导致LDAP连接问题?

** – >(1256)远程系统不可用。 有关networking故障排除的信息,请参阅Windows帮助。 – >(1722)RPC服务器不可用。 – >(8206)目录服务正忙。 – >(8438)目录服务目前太忙,无法完成复制操作。

4.)如何识别LDAP查询的延迟? 由于这个脚本自己运行,有没有一种方法来确定它所花费的时间或测量其延迟?

请让我知道是否需要更多的信息。

做我以上做什么是有道理的LDAP连接检查

每2秒运行一次就会过度。 太多了。 如果你打算这样做,考虑延长间隔,每隔5分钟左右检查一次。 LDAP服务器不容易崩溃,您需要每2秒检查一次。

上面的代码是否确认LDAP连接存在于来自任何正确configuration的应用程序的特定DC?)

是的,它会testing一个LDAP连接。 这不是唯一的方法,它可能是也可能不是最好的方法,但它是一种方法。

我也怀疑如何在脚本的每次迭代中输出到CSV(每2秒!),并在每次迭代时简单覆盖相同的CSV。 如果您将输出发送到SQL数据库,并在每次运行脚本时添加一行,则您将获得更多的上下文数据。 例如,您可以查询数据库,看到从上午10点到上午10点30分钟有一个30分钟的中断,然后在7月7日上午11点45分到上午11点50分之间发生了5分钟的中断等等

这个问题是关于powershell,如何获取PowerShell中的LDAP错误日志? 我想testing一个不存在的DC或closures的DC,我应该期待什么日志事件以及如何捕获它。

你需要创build自己的事件日志。 Powershell不会自动logging每一个错误和exception,而不需要你去问。 考虑使用Start-Transcript将Powershell会话logging到文件中。 或者,您可以使用New-Event cmdlet创build自己的自定义事件日志消息。 使用Try / Catch块可以轻松捕捉exception。 您也可以使用脚本中的$ Errorvariables来查看最后一个错误。

和问题2一样,如果DC有复制问题,应该捕获什么日志以及如何?

这不是在域控制器上testing复制问题的适当方式。 您应该使用repadmin.exe /showreps ,目录服务事件日志等来监视复制健康状况。

编辑:要解决您的更新,

RPC错误不等同于Active Directory复制错误。 RPC服务器可用性是一个单独的问题…虽然RPC服务器可用性问题的根本原因当然也可能导致巧合的复制问题。 更多的故障排除是必需的。

如何识别LDAP查询的延迟? 由于这个脚本自己运行,有没有一种方法来确定它所花费的时间或测量其延迟?

从客户的angular度来看, Measure-Command cmdlet很好地告诉你事情花了多长时间。 或者您可以使用底层的System.Diagnostics.Stopwatch .NET对象。 这是相当准确的。

从服务器的angular度来看,你会想看性能监视器。 (Perfmon)查看“目录服务”和NTDS perfmon对象 – 它们有各种性能计数器,每秒执行多less次目录读取,平均时间,队列长度等。Perfmon计数器对整体健康有好处,但服务器可能不会跟踪每个单独的LDAP查询的延迟。 如果你对这种测量感兴趣,你可能会想要从客户端进行测量。