当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何检查域控制器健康状况

作者:精品下载站 日期:2024-12-14 06:32:32 浏览:11 分类:玩电脑

如何检查域控制器健康状况


域控制器是网络的重要组成部分。它们允许您组织网络并管理用户、计算机和其他资源。因此,定期检查域控制器的运行状况非常重要。但如何做到这一点,以及需要寻找哪些信号?

特别是当您运行多个域控制器时,密切关注域控制器之间的复制非常重要。

在本文中,我将解释如何检查域控制器的运行状况,并且我编写了一个脚本来自动检查所有域控制器的运行状况。

检查域控制器健康状况

域控制器是网络的骨干。域控制器的任何问题都可能导致用户无法再登录,这不是开始新一天的好方法。为了发现任何潜在问题,我们需要定期检查域控制器的运行状况。

您的 Windows 服务器附带了一些内置工具,可让您检查域控制器和 Active Directory 的运行状况。最重要的是 DCDiag 工具,它会通过默认测试在 21 个点上检查您的服务器。

要检查域控制器之间的复制,您可以使用 RepAdmin 工具。该工具允许您快速检查复制是否正在运行且没有任何错误。 (您还可以使用 DCDiag 测试复制,但 RepAdmin 为您提供更多信息)

如果您定期运行这两个工具,那么您可以快速发现潜在问题。

但是每周手动运行这些工具来检查域控制器的运行状况实际上并不起作用。输出也并没有真正让您一目了然地看到任何潜在的问题。

因此,我创建了一个 PowerShell 脚本来检查所有域控制器和 Active Directory 的运行状况。它将运行所有重要的测试,包括 DCDiag,并在控制台中很好地格式化结果,或者您可以将其导出到 HTML 文件并通过电子邮件发送。

该脚本检查以下重要部分:

  • DNS - DNS 记录和 DNS 服务器地址配置是否正确

  • 延迟 - 检查每个域控制器的延迟

  • 正常运行时间 - 读出域控制器的更新

  • 角色 - 验证每个 FSMO 持有者均可访问

  • 可用空间 - 检查系统驱动器上的可用空间

  • AD 数据库大小 - 读出 AD 数据库大小

  • 服务 - 检查所有重要服务 (13) 是否已启动并运行

  • DCDiag - 运行默认的 DCDiag 测试

  • 复制 - 检查上次复制尝试、成功和增量

  • NTP 时间偏移 - 检查 NTP 偏移是否太大

检查 DNS

我们在脚本中进行的首要测试之一是检查 DNS 设置。我们希望确保每个域控制器的 DNS 记录都在 DNS 中注册。

我们还想确保网络适配器中的 DNS 服务器配置正确。

潜伏

ping 测试不仅会检查服务器是否可达,还会在延迟太高时显示警告。本地网络中的延迟应低于 10 毫秒,但当您在不同站点上有多个域控制器时,只要低于 100 毫秒,延迟就可以了。

正常运行时间

正常运行时间信息更丰富,但当服务器运行时间少于 12 小时时,它会显示警告。

域角色

为了使 Active Directory 中的信息在所有域控制器之间保持同步,有 5 个 FSMO 角色。每个角色只有一个主人。在大多数情况下,所有角色都由一台域控制器执行。但在某些情况下,您可能已将角色分配给多个域控制器。

重要的是每个角色的服务器都可用。在脚本中,我们检查域控制器是否拥有一个或多个角色,并检查是否可以访问其他角色的服务器。当离线时,导出中会显示一条警报。

服务

域控制器需要运行一些服务。现在,默认情况下也会使用 DCDiag 测试检查这些内容。但对于报告来说,单独检查服务更容易,因此我们可以轻松显示未运行的服务。

检查以下服务:

  • 活动目录域服务

  • 广告网络服务

  • DFS复制

  • DHCP客户端

  • DNS客户端

  • DNS服务器

  • 站点间消息传递

  • Kerberos 密钥分发中心

  • 网络登录

  • 远程调用流程

  • 服务器(局域网服务器)

  • 安全账户经理

  • 工作站(兰曼工作站)

  • Windows 事件日志

  • Windows 时间、工作站

直流诊断

该脚本将运行默认的 DCDiag 测试(服务测试除外)。如果其中一项检查失败,则会指出哪一项测试失败。

复制

为了保持域控制器的良好运行状况,控制器之间的复制顺利运行非常重要。为了监控这一点,我们将查看三个指标:

  • 上次复制尝试

  • 上次成功复制

  • 复制增量

该报告还将显示服务器的复制伙伴。

时间偏移

我们要检查的最后一件事是服务器之间的时差。这应该在正负一秒之内。如果偏移量较大,则您可能会遇到其他域控制器的复制问题或网络中的身份验证问题。

域控制器健康脚本

用于检查域控制器运行状况的 PowerShell 脚本使您可以轻松定期检查 Active Directory 和服务器的运行状况。您可以安排脚本每周运行并将结果保存到 HTML 文件中。或者您可以手动运行脚本并直接在控制台中查看结果。

您可以从我的 GitHub 存储库下载最新版本的脚本

在脚本的开头,您将找到一些可以设置的设置。其中包括文件名和位置以及所需的输出格式。

# Set variables
$reportDate = Get-Date -Format "dd-MM-yyyy"
$reportFileName = "LazyDCHealthCheck-$reportDate.html"
$reportPath = "c:\"
$outputToConsole = $true
$outputToHtml = $false

您需要在域控制器上运行该脚本。使用 PSSession 不起作用,因为当脚本尝试连接到其他域控制器时,这会出现错误。

当您在控制台输出打开的情况下运行脚本时,您将得到类似于下面的结果(希望错误更少?)。脚本末尾的错误计数将所有 DCDiag 错误计为 1,因此您在下面示例的摘要中只看到两个错误。

[玩转系统] 如何检查域控制器健康状况

我们还可以将域控制器运行状况结果导出为 HTML。您可以采用两种格式来执行此操作,具体取决于网络中域控制器的数量。如果您只有一两个域控制器,则每个域控制器将垂直列出,以便轻松查看电子邮件中的结果。

[玩转系统] 如何检查域控制器健康状况

但是,如果您有更多域控制器,并且水平列出,则更容易读取 Active Directory 运行状况检查的结果。

在脚本的第 551 行附近,您将找到下面的 if 语句。该语句确定您是否获得水平或垂直表格。如果您喜欢水平或垂直表格,您可以更改此数字

if ($allDomainControllers.length -gt 2) {

[玩转系统] 如何检查域控制器健康状况

包起来

定期检查域控制器的运行状况以尽早发现任何潜在问题非常重要。该脚本检查服务器和 Active Directory 的最重要部分,并允许您轻松在 PowerShell 控制台或 HTML 报告中查看结果。

请务必阅读本文以了解有关调度 PowerShell 任务的更多信息。

如果您对脚本有任何建议或发现任何错误,请在下面的评论或 GitHub 上告诉我。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯