Skip to main content

完整操作步骤表,目的是彻底清理 S-DNS6 的残留 SRV 记录,并让 S-DNS1 全权承管 SYSVOL/NETLOGON

好的,我帮你整理一个 完整操作步骤表,目的是彻底清理 S-DNS6 的残留 SRV 记录,并让 S-DNS1 全权承管 SYSVOL/NETLOGON,同时保证 DFSR、Netlogon 和 DNS 正常。整个流程分为 准备阶段、清理阶段、确认阶段、修复阶段 四大步骤。


一、准备阶段(确认环境)

  1. 确认 S-DNS1 和 S-DNS6 的状态

    • 在 S-DNS1 上:

      nltest /dsgetdc:shuncom.local /pdc
      repadmin /replsummary
      dfsrdiag /getglobalstate
      
    • 在 S-DNS6 上:

      net stop netlogon
      dfsrdiag /getglobalstate
      repadmin /replsummary
      
    • 确认 DFSR 全局状态和复制状态。S-DNS6 停止 Netlogon,不参与注册 SRV。

  2. 备份 DNS 和 SYSVOL

    • DNS:导出 shuncom.local 区域。

    • SYSVOL:复制 C:\Windows\SYSVOL\sysvolC:\Windows\SYSVOL\domain\scripts 到安全位置。


二、清理 S-DNS6 残留 SRV 记录

目标:让 S-DNS6 不再出现在 _ldap、_kerberos、_gc 等 SRV 记录中,但不删除其他 DC 信息。

  1. 在 S-DNS1 上打开 DNS 管理器

    • 打开 DNS -> shuncom.local -> _msdcs.shuncom.local

    • 查找涉及 s-dns6.shuncom.local 的 SRV 记录:

      • _ldap._tcp.dc._msdcs.shuncom.local

      • _kerberos._tcp.dc._msdcs.shuncom.local

      • _gc._tcp.shuncom.local

      • _ldap._tcp.gc._msdcs.shuncom.local

    • 修改记录的优先级为高或权重为 0(Windows DNS 不支持“禁用”,可以手动降低优先级,使 S-DNS1 优先)。

    • 可考虑 将 S-DNS6 SRV 移至其他备用站点 或在 DNS 上设置 禁止注册 DC 记录(在 S-DNS6 上注册表:HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DnsAvoidRegisterRecords)。

  2. 在 S-DNS6 上禁止注册 SRV

    reg add "HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters" /v DnsAvoidRegisterRecords /t REG_MULTI_SZ /d "_ldap._tcp._sites._tcp._gc" /f
    net stop netlogon
    net start netlogon
    
    • 可指定多条记录防止注册。

  3. 清理 DNS 缓存并强制刷新

    • 在 S-DNS1:

      dnscmd /clearcache
      ipconfig /flushdns
      
    • 强制注册 DNS:

      nltest /dsregdns /server:s-dns1.shuncom.local
      
    • 检查 SRV:

      nslookup -type=SRV _ldap._tcp.dc._msdcs.shuncom.local
      nslookup -type=SRV _kerberos._tcp.dc._msdcs.shuncom.local
      nslookup -type=SRV _gc._tcp.shuncom.local
      

三、确保 S-DNS1 承管 SYSVOL/NETLOGON

  1. 检查 DFSR 状态(S-DNS1 上):

    dfsrdiag /getglobalstate
    dfsrdiag backlog /rgname:"Domain System Volume" /rfname:"SYSVOL Share" /smem:s-dns1 /rmem:s-dns1
    
    • 确认无 backlog,状态为 已消除开始

  2. 启动 Netlogon 并注册共享

    net start netlogon
    nltest /dsregdns /server:s-dns1.shuncom.local
    
    • 确认 SYSVOL/NETLOGON 共享:

      net share
      dir \\s-dns1\SYSVOL
      dir \\s-dns1\NETLOGON
      
    • 如果共享消失,手动创建:

      net share SYSVOL=C:\Windows\SYSVOL\sysvol /GRANT:"Domain Admins",FULL
      net share NETLOGON=C:\Windows\SYSVOL\domain\scripts /GRANT:"Domain Admins",FULL
      
  3. 强制 DFSR AD 同步(S-DNS1 → S-DNS6):

    repadmin /syncall /AdeP
    repadmin /showrepl
    

四、验证阶段

  1. 检查 AD 健康

    dcdiag /test:advertising /test:netlogons /test:sysvol
    
    • 确认 S-DNS1 通过所有测试。

    • 确认 S-DNS6 不再出现在主要 SRV 记录列表中。

  2. 检查 SRV 注册

    nslookup -type=SRV _ldap._tcp.dc._msdcs.shuncom.local
    nslookup -type=SRV _kerberos._tcp.dc._msdcs.shuncom.local
    nslookup -type=SRV _gc._tcp.shuncom.local
    
    • S-DNS1 应为主注册 DC。

    • S-DNS6 可保留,但权重最低或不注册。

  3. 确认 SYSVOL/NETLOGON 可用

    • 从其他 DC 或客户端访问:

      \\s-dns1\SYSVOL
      \\s-dns1\netlogon
      

注意事项

  • S-DNS6 停止 Netlogon 并不删除 AD 内对象,只是避免注册 SRV。

  • 手动共享可作为临时补救,但长期依赖 Netlogon。

  • 所有 DNS 改动建议在业务低峰进行。

  • 完成后可在 S-DNS1 上强制刷新 AD 和 DNS:

    repadmin /syncall /AdeP
    nltest /dsregdns /server:s-dns1.shuncom.local
    ipconfig /registerdns
    

明白了,你现在遇到的状况是:

  • DFSRDIAG 无法联系 S-DNS1 和 S-DNS6,报错 1355 / 1717,这说明 域控制器定位失败或者 Netlogon 注册异常

  • Netlogon 服务已经启动,但 SYSVOL/NETLOGON 共享不稳定,ipconfig /registerdns 之后共享会消失。

这说明 DFSR、DNS 和 Netlogon 三者之间的关系尚未彻底理顺,S-DNS1 还未完全“接管” PDC/SYSVOL/NETLOGON。


🔹 原因分析

  1. S-DNS6 已停用 Netlogon → 但 AD、DNS 中可能仍有它的 SRV 记录残留。

  2. S-DNS1 DFSR 配置未完全激活 → ReplicationState 和 Backlog 无法访问。

  3. DNS SRV 记录混乱 → DsGetDcName 可能仍返回 S-DNS6,导致 DFSR/Netlogon 定位失败。

  4. Netlogon 注册顺序问题 → 如果 S-DNS1 注册 DNS 时,AD 中仍存在 S-DNS6 信息,SYSVOL/NETLOGON 共享可能被 DFSR 冻结或删除。


🔹 建议解决方案(彻底清理 + 全权承管)

步骤 1:完全停止 S-DNS6 Netlogon

# S-DNS6 上执行
net stop netlogon
sc config netlogon start= disabled
  • 禁止自动启动,避免残留 SRV 注册。

步骤 2:清理 DNS 中 S-DNS6 SRV

  • 打开 DNS 管理器 → 正向查找区 → _msdcs.shuncom.local

  • 删除所有指向 S-DNS6 的 SRV 记录:

    • _ldap._tcp.dc._msdcs.shuncom.local

    • _kerberos._tcp.dc._msdcs.shuncom.local

    • _gc._tcp.shuncom.local

  • 可使用 PowerShell 批量删除:

Import-Module DNSServer
Remove-DnsServerResourceRecord -ZoneName "_msdcs.shuncom.local" -Name "_ldap._tcp.dc._msdcs.shuncom.local" -RRType "SRV" -ComputerName S-DNS1

步骤 3:在 S-DNS1 强制注册 Netlogon / SYSVOL

# 停止再启动 Netlogon
net stop netlogon
net start netlogon

# 强制注册 DC SRV
nltest /dsregdns /server:S-DNS1.shuncom.local
  • 验证 SYSVOL / NETLOGON 共享:

net share
dir \\S-DNS1\SYSVOL
dir \\S-DNS1\netlogon
  • 如果缺失,手动创建:

net share SYSVOL=C:\Windows\SYSVOL\sysvol /GRANT:"Domain Admins",FULL
net share NETLOGON=C:\Windows\SYSVOL\domain\scripts /GRANT:"Domain Admins",FULL

步骤 4:检查 DFSR 状态

  • 由于 DFSRDIAG 无法联系 DC,你必须先确保 S-DNS1 DNS 注册正常且可以解析自己

nslookup s-dns1.shuncom.local
ping s-dns1.shuncom.local
  • 然后触发 AD 与 DFSR 同步:

dfsrdiag PollAD
  • 若仍无法访问 DFSRDIAG,可考虑 强制重建 DFSR SYSVOL(在 PDC 上执行):

# 强制 S-DNS1 成为 SYSVOL 主
dfsrdiag PollAD
# 若必要,使用 PDC FSMO 角色的系统状态备份/恢复

步骤 5:验证 AD / DNS / SYSVOL 健康

# 检查 AD 同步
repadmin /showrepl
repadmin /replsummary

# 检查 DC 健康
dcdiag /test:advertising /test:netlogons /test:sysvol

# 验证 DNS SRV
nslookup -type=SRV _ldap._tcp.dc._msdcs.shuncom.local
nslookup -type=SRV _kerberos._tcp.dc._msdcs.shuncom.local
  • 确认返回均为 S-DNS1,S-DNS6 不再出现。


💡 关键点

  1. 彻底禁用 S-DNS6 Netlogon 并清理 DNS SRV

  2. S-DNS1 必须注册自身 DC SRV 并启动 SYSVOL/NETLOGON 共享

  3. DNS SRV 清理顺序在 Netlogon 注册之前,避免 DFSR/SYSVOL 被覆盖。

  4. DFSRDIAG 和 repadmin 操作依赖 DNS 正确解析和 Netlogon 注册


如果你同意,我可以帮你整理一个 图解流程可直接执行的命令顺序,直观显示 S-DNS1 全权承管 +(包含 S-DNS6 禁止停用、DNS SRV 清理、S-DNS1 注册 + SYSVOL/NETLOGON、DFSR 流程验证、健康检查)方便操作时参考保证一步到位不报错

你希望我画这个图直接帮你整理吗?