工具名称:DcDiag
工具出处:MS Support Tools
工具类型:命令行工具
当前环境:Win2003 SP1 + R2,DC
主要功能:
  DcDiag是域控制器诊断工具,通过各种诊断测试,用来分析当前林或域中域控制器状态,生成相应的检测报告。DcDiag可以说是域控制器诊断全能工具,当DC出现问题却无法判断具体故障原因时,首选使用DcDiag工具对DC进行一次全面诊断,查看检测报告,从而缩小问题范围以及定位问题!
  DcDiag工具由对系统的一系列测试和校验构成,可以根据用户的选择,针对不同的范围(林,域)对域控制器进行不同项目的诊断测试,主要测试项目有:
  1:连通性
  2:复制
  3:拓朴完整性
  4:检查NC Head安全描述符
  5:检查登录权
  6:获取DC位置
  7:验证安全边界
  8:验证FSMO角色
  9:验证信任关系
  10:DNS
 
一:DcDiag工具语法格式
  DcDiag.exe /s:<Domain Controller> [/u:<Domain>\<Username> /p:*|<Password>|""]
               [/hqv] [/n:<Naming Context>] [/f:<Log>] [/ferr:<Errlog>]
               [/skip:<Test>] [/test:<Test>]
 
二:主要参数说明:
  /s:Domain Controller - 指定测试的DC,默认测试本机。
  /n:Naming Context - 指定测试时关联的名称上下文。似乎只能使用域名称上下文,无法测试Schema,Configration等名称上下文。
           域名称上下文可以使用域的DNS名称,NetBios名称或DN名称。
  /u:Domain\Username /p: - 用指定的帐号密码连接DC,此时该帐号的密码为显示密码。
   如:DcDiag /u:superlan.vmtest.com\administrator /p:1qa2ws3ed
      /a - 测试当前站点所有DC
  /e - 测试整个企业(整个林)中所有DC的状况
  /q - 只显示错误信息
       /v - 显示详细检测报告 
  /i - 忽略多余的错误信息
       /fix - 仅对 MachineAccount 测试有影响。此参数会使测试过程对目录服务器的计算机帐户对象上的服务主体名称 (SPN) 进行修复
       /f - 将信息报告输出到指定的文件
  /ferr - 将致命错误输出重定向指定的文件
       /c - 诊断除 DcPromo 和 RegisterInDNS 之外的所有测试项目,包括非默认的测试。
    非默认测试项包括:拓扑,对方服务器是否关闭,安全通道输出范围以及DNS动态注册等。
  /skip:Test - 指定不进行诊断的测试项,必须与/c配合使用。
  /test:Test -  只运行单一测试项,但连通测试不跳过
     具体测试项有:
       Connectivity - 连通性。测试DC是否在DNS中登记注册,Ping测试以及LDAP/RPC的可用性。
       Replications - 检测DC之间的复制情况
       Topology - 检查KCC是否为所有DC生成完整的链接拓扑
       CutoffServers - 检查因复制伙伴不可用而没有接受到的复制的DC
       NCSecDesc - 检查在名称上下文头中的安全描述符是否有适当的复制权限
       NetLogon - 检查是否有进行复制的适当登录权限
       Advertising - 检查每个DC是否已公告它自己能够执行的角色。如果 Net Logon 服务停止或未能启动,则此测试将失败。
       KnowsOfRoleHolders - 检查DC是否可以与FSMO操作主机正常联系
       Intersite - 检查会阻止或暂时中止站点间复制的故障,并尝试预测 KCC 能够恢复之前需要的时间。
       FSMOCheck - 检查DC是否能联系密钥发行中心 (KDC)、时间服务器、首选时间服务器、主目录服务器(主域控制器 (PDC))和全局编录服务器。
       RidManager - 检查是否可访问 RID 主机,以及 RID 主机是否包含正确的信息。
                        MachineAccount - 检查机器的帐户是否包含正确信息。
                如果本地计算机帐号丢失,使用/RecreateMachineAccount进行尝试修复
                如果本地计算机帐号标志不正确,使用/FixMachineAccount进行尝试修复
                        Services - 检查DC服务是否在运行正常
                        OutboundSecureChannels 检查当前域中所有DC的安全通道。
       ObjectsReplicated - 检查 Machine Account 和 DSA 对象是否已复制
                        frssysvol - 检查SYSVOL文件夹共享状态。
       frsevent -  检查FRS是否存在错误记录
       kccevent -  检查 KCC是否存在错误记录。
                        systemlog - 检查系统是否无错误运行。
                        DCPromo - 检查DC上的DNS记录是否正常                     
       RegisterInDNS - 检查DC是否在DNS中注册
       Cro***efValidation - 检查交叉引用是否有效
                      CheckSDRefDom - 检查目录分区的安全
                        VerifyReplicas - 检查复制服务器上目录分区的安全性
       VerifyReference - 检查对于 FRS 和“复制”基础结构系统参数的正确与完整性
                        VerifyEnterpriseReferences - 检查整个企业范围内的所有DC上系统参数是否正确与完整

                       (Win2003 SP1新增功能)
                       CheckSecurityError - 检测可能会造成AD复制失败的安全配置
                       DNS - 检查整个企业内的DNS健康性。
                                 DNS测试子项有:
                                 /DnsBasic - 基本DNS测试,包括网络连接性、DNS客户端配置、服务可用性和区域存在性。
                                /DnsForwarders -  /DnsBasic 测试,还检查转发器的配置
                                /DnsDelegation - /DnsBasic 测试,还检查委派配置
                                /DnsDynamicUpdate - /DnsBasic测试,还检查是否配置动态更新
                                /DnsRecordRegistration - /DnsBasic测试,检查是否已注册A、CNAME和已知的SRV记录。此外,还根据结果创建清单报告
                               /DnsResolveExtName - /DnsBasic测试,还尝试解析指定的域名名称.
                               /DnsInternetName - /DnsBasic测试,还尝试解析指定域名
                               /DnsAll - 除了/DnsResolveExtName外的所有DNS测试项
三:使用示例
    DcDiag参数众多,且可以组合使用,下面只给出基本的使用示例,对用法做一简单描述。
    1:最简单的用法,诊断当前DC状况
       >DcDiag
 
    2:测试当前DC的连通性
      >dcdiag /s:vmtest /test:connetivity
 
    3:测试整个林拓扑结构
     >dcdiag /e /test:Topology
      
    4:DCPromo参数用法。注:DcPromo主要是当使用AD安装向导或通过DCPromo命令安装AD出错时使用
       测试是否可以在当前服务器上新建一个林
       >dcdiag /test:dcpromo /dnsdomain:vmtest.com /newforest
        DcDiag使用之2
       测试是否可以在当前服务器上新建树       >dcdiag /test:DCpromo /dnsdomain:vmtest.com /newtree /forestRoot:vmtest.com
 
       测试是否可以在当前服务器上新建子域
       >dcdiag /test:dcpromo /dnsdomain:vmtest.com /childDomain
 
       测试是否可以在当前服务器上安装辅助DC
       >dcdiag /test:dcpromo /dnsdomain:vmtest.com /ReplicaDC    
 
     5:测试DC是否在DNS中注册
        >Dcdiag /v /test:RegisterInDns /Dnsdomain:vmtest.com
 
     6:DNS诊断
        最简单用法,测试除/DnsResolveExtName之外的六项子测试
        >dcdiag /test:dns
        基本测试:执行基本 DNS 测试,包括网络连接性、DNS 客户端配置、服务可用性和区域存在性
        >dcdiag /test:dns /DnsBasic
 
        测试DnsBasic和转发器
        >dcdiag /v /test:dns /dnsForwarders
   
        测试DnsBasic和解析指定的域名
        >Dcdiag /v /test:dns /dnsinternetname:www.baidu.com
 
四:一个完整的DcDiag诊断信息注解
 
五:参考资料