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

[玩转系统] 如何使用 DCDiag 检查域控制器

作者:精品下载站 日期:2024-12-14 18:56:51 浏览:15 分类:玩电脑

如何使用 DCDiag 检查域控制器


域控制器是网络的骨干。它们允许您组织网络并管理用户、计算机和其他资源。因此,域控制器运行没有任何问题非常重要,这就是 DCDiag 工具的用武之地。

DCDiag 代表域控制器诊断工具,是一个内置的命令行实用程序,可让您诊断域控制器的运行状况。

在本文中,我们将了解 DCDiag 工具、如何使用它,并且我将为您提供一些有用的示例来监控域控制器的运行状况。

使用 DCDiag

DCDiag 是域控制器上的内置工具。要使用它,您只需使用管理权限打开 PowerShell。我们还可以在其他服务器或计算机上使用该工具来检查域控制器的运行状况。为此,您需要安装远程服务器管理工具 (RSAT) 功能。

您可以通过设置> 应用> 可选功能页面或使用以下 PowerShell 命令安装 RSAT:

Get-WindowsCapability -Name RSAT* -Online | Add-WindowsCapability -Online

DCDiag 命令

在我们看一些有用的 DCDiag 示例之前,让我们首先看一下该工具的语法。该工具可以做很多事情,但使用正确的命令将使查找和诊断任何问题变得更加容易。

如果运行不带任何参数的命令 dcdiag,那么它将针对本地域控制器运行 21 个默认测试。这将在控制台中生成相当长的输出,这可能有点让人不知所措。

因此,您需要了解的基本命令是:

/s:<name-of-domaincontroller>

指定要运行命令的服务器。
如果未指定,则针对本地域控制器运行测试

/u:<Domain>\<UserName>/p:<Password>

指定用于连接到服务器的用户名和密码。使用 * 作为密码以获得输入密码的提示。

/q

仅输出错误

/c

综合测试,包括DNS测试

/a

在所有域控制器上运行测试

/f:<LogFile>

将结果重定向到指定文件

/test:<Test>

只运行指定的测试

/ReplSource:<SourceDomainController>

测试本地域控制器和源域控制器之间的连接。

DCDiag 示例

现在我们了解了该工具的工作原理,让我们看几个有关如何使用它的示例。我们将从基本测试开始,只需在本地服务器上运行 dcdiag,或者当您从另一台计算机运行 dcdiag 时,特别是在域控制器上运行它:

dcdiag

# Or when running it from another computer
dcdiag /s:la-srv-dc01

这将在域控制器上运行 21 个默认测试,并显示哪些测试通过了,哪些测试失败了。我更喜欢使用命令行开关 /q show 它只输出错误。这使得分析结果变得更加容易:

# Run test against la-srv-dc01 and show only the errors
dcdiag /s:la-srv-dc01 /q

[玩转系统] 如何使用 DCDiag 检查域控制器

使用凭证

DCDiag 需要管理访问权限才能执行所有测试。当您从工作站运行该命令时,您将需要提供域管理员凭据。为此,我们将使用 /u 和 /p 开关。对于密码,您可以在命令中以纯文本形式输入。但更好的是使用 * 代替,这样您会收到输入密码的提示。

# Run test against la-srv-dc01 and show only the errors and use supplied credentials
dcdiag /s:la-srv-dc01 /q /u:a-d\administrator /p:*

测试所有域控制器

当您有多个域控制器(应该至少有两个)时,您还可以同时针对所有域控制器运行 DCDiag。在这种情况下,我强烈建议仅显示错误:

# Run default tests against all domain controllers
dcdiag /q /e

输出到文件

所有命令行输出都可以使用默认的重定向输出运算符 > 重定向到文本文件。但 DCDiag 工具还有一个命令行开关,可将结果重定向到文件:

# Default redirect output operator:
dcdiag /s:la-srv-dc01 /q > c:\temp\testdc.txt

# Using the built-in switch:
dcdiag /s:la-srv-dc01 /q /f:c:\temp\testdc.txt

检查 FSMO 角色

该工具默认运行大量测试,但有时您只想运行特定测试。为此,您需要使用命令行开关 /test: 后跟要运行的测试名称。

例如,要检查 FSMO 角色(在本文中阅读有关 FSMO 的更多信息),您可以使用以下命令:

dcdiag /test:FSMOCheck

DCDiag 测试复制

DCDiag 工具还可用于检查域控制器之间的复制。为此,您可以使用 /test: 开关运行测试复制。请注意,您还可以使用一个专用的复制诊断工具,repadmin。

dcdiag /test:Replications

DCDiag 测试 DNS

DNS 是域网络的重要组成部分。 DNS 中的任何问题或错误配置都会对域控制器和 Active Directory 的运行(甚至工作)产生重大影响。这就是为什么 DNS 配置诊断也是 DCDiag 工具的一部分。

DNS 测试不是默认测试的一部分,因此您必须单独运行它们。原因是 DNS 测试实际上可能需要几分钟的时间,尤其是当您针对多个域控制器运行测试时。

我们可以运行一些 DNS 测试。 DnsBasic 测试始终包含在内。

/test:DNS

运行所有测试

/DnsBasic

测试网络连接、DNS 客户端配置、服务可用性和区域存在。

/DnsAll

检查地址 (A)、规范名称 (CNAME) 和知名服务 (SRV) 资源记录是否已注册

/DnsForwarders

检查转发器的配置

/DnsDelegation

检查适当的授权

/DnsDynamicUpdate

确定是否在 Active Directory 区域中启用动态更新

/DnsRecordRegistration

检查地址 (A)、规范名称 (CNAME) 和知名服务 (SRV) 资源记录是否已注册

值得高兴的是,我们仍然可以使用基本开关,例如 /s 连接到另一台服务器或 /f 将结果导出到文件。额外的一个是 /x 开关,它将结果导出到 XML 文件。

要运行 DNS 基本测试,您需要指定 /test:DNS/DnsBasic

dcdiag /test:DNS /DnsBasic

[玩转系统] 如何使用 DCDiag 检查域控制器

DCDiag DNS 测试完成后,您将在输出末尾看到结果摘要。在下面的示例中我们可以看到只有 Auth 成功,但连基本的 DNS 测试都失败了:

[玩转系统] 如何使用 DCDiag 检查域控制器

如果查看上面的结果,我们可以看到没有找到在域控制器上配置的三个 DNS 服务器。

运行其他 DNS 测试

要运行其他 DNS 测试,您需要指定 /test:DNS,然后指定要运行的测试。请记住,基本 DNS 测试始终由 DcDiag 执行,并且该测试实际上可能需要几分钟时间。

因此,如果您想运行 DNS 转发器测试,则需要使用以下命令:

dcdiag /test:DNS /DnsDynamicUpdate

修复 DCDiag 失败的测试广告

此错误表明 NTP 时间服务器未在域控制器上运行。这应该运行所有域控制器。如果该服务未运行,或者出现问题,您将收到域控制器未作为时间服务器进行广告的错误。

[玩转系统] 如何使用 DCDiag 检查域控制器

通过使用以下步骤重置 w32tm 服务可以轻松解决此问题:

w32tm /unregister
net stop w32time
w32tm /register
net start w32time
w32tm /config /syncfromflags:domhier /update
net stop w32time
net start w32time

如果再次运行命令 DCDiag,您将看到问题已解决。

总结

密切关注域控制器的运行状况对于网络的稳定性非常重要。借助 DCDiag,我们可以监控所有重要部分并轻松诊断域控制器上的任何潜在问题。

我建议至少每月运行一次该工具,以确保一切正常运行。如果您刚刚升级或降级域控制器,那么在前几天运行该工具就显得尤为重要。

我希望这篇文章对您有所帮助,如果您对 DCDiag 有任何疑问或提示,请在下面发表评论。

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

取消回复欢迎 发表评论:

关灯