简介面向需要部署Windows Server 2003域环境或进行域控制器迁移的IT运维人员这份docx文档完整记录了主域控与辅助域控的搭建方法包括环境准备、dcpromo向导操作、IP及DNS设置等。资源重点讲解主域控制器迁移流程详细演示FSMO五大角色——RID主机、PDC仿真器、基础结构主机、域命名主机、架构主机的图形化迁移与命令行转移方式并附有seize强制占用命令便于在DC故障时进行角色接管。资料在步骤上覆盖从零搭建主域控、辅助域控加入域到迁移主控及FSMO角色的完整闭环。压缩包内共1个docx文件约566KB内容结构清晰步骤与命令并存。目前已有2061人学习下载适合域控运维初学者及需要做控制器迁移的实践者参考。1. 域控迁移这事儿看着是向导点几步实际全是坑Windows Server 2003 的主域控搭建和迁移放在今天看像老古董但很多旧机房、隔离网络里的业务系统还压在它上面。我接过一个模拟项目X的活两台 2003 的机器一台主域控扛了七八年系统状态里攒了一堆用户和组策略另一台辅助域控常年闲着。要做的就是把主域控替换掉听起来不就是跑一遍 dcpromo 再转移五个 FSMO 角色吗真上手才发现光是辅助域控的 DNS 指向、全局编录勾选顺序、ntdsutil 里 transfer 和 seize 的区别就够让人翻几次车。老域控迁移最怕的不是命令复杂而是顺序错。先拔了主域控的全局编录再迁移角色客户端的登录验证直接卡死FSMO 角色没转移干净就下线旧机器新域控整天报复制错误。这篇就把主域控搭、辅助域控加、FSMO 迁移和故障夺取按实际操作的顺序写清楚命令和向导每一步都落到能跑通为止。适合正在摆弄 2003 域控、或者要接手这类老环境的开发者照着走能少踩几个坑。2. 部署前规划计算机名、IP、DNS 和备份策略一次定好2.1 主机名与 IP 规划为什么文档里 A 和 B 的顺序不能乱域控的计算机名、IP 和 DNS 是整套环境的地基。文档里主计算机名是 A辅助计算机名是 B域名用 Jiajie.comNETBIOS 名 JIAJIE。这三个标识一旦定下来后面所有复制、验证、角色转移都靠它们互相识别。计算机名不要装完系统再乱改域控改名牵扯到 SPN 和复制拓扑2003 上改完名字经常要等复制周期才能正常解析。主域控 IP 设为 1.1.1.1子网掩码 255.0.0.0辅助域控 IP 设为 1.1.1.2。注意这里用的是 A 类掩码整个 1.0.0.0/8 段都当成内网用这在老实验环境里很常见实际生产最好换成私网段但按文档这套方案走没有问题。关键是辅助域控的 DNS 必须填主域控的 IP 1.1.1.1不要填自己也不要填公网 DNS否则加入域的时候找不到域控制器。服务器网卡属性里把 DNS 后缀也确认一下确保和域名 Jiajie.com 一致。比较稳妥的做法是先把两台机器的时间同步做好。域控之间复制依赖 Kerberos时间偏差超过 5 分钟复制直接报错现象是“拒绝访问”或者“RPC 服务器不可用”。2003 上可以用 w32tm /resync 手动同步也可以在规划阶段直接把主域控配成时间源辅助域控再指向它。2.2 装系统时的预留项密码策略、磁盘分区和角色规划主域控这台机器我一般建议系统盘和数据盘分开。Active Directory 数据库ntds.dit和日志文件默认放在 C:\Windows\NTDS如果 C 盘空间不够域数据库膨胀之后会导致复制失败甚至服务起不来。文档里第 7 步就是让指定数据库和日志的存储位置第 8 步是 SYSVOL 文件夹位置这一步别图省事全扔 C 盘数据库和日志最好放不同物理磁盘SYSVOL 保持默认也可以。活动目录的管理员密码文档里写的是 adchina但这是 DSRM 密码也就是目录服务还原模式的密码。注意它和域管理员 Administrator 密码不是一回事安装向导里会让你单独设置。这个密码一定要记牢丢了就只能用 ntdsutil 重置而且得在重启进目录服务还原模式时操作。还有个容易被低估的项是 DNS 注册诊断向导第 9 步选第二项也就是“在这台计算机上安装并配置 DNS并将这台 DNS 服务器设置为这台计算机的首选 DNS 服务器”。这一步选中之后域控会自动创建 _msdcs.Jiajie.com 等 SRV 记录少了这些记录客户端找不到域控其他域控也加不进来。备份策略这块很多人是迁移前才想起来用 ntbackup 备份 system state实际上主域控刚搭好、数据量小的时候就应该做一次干净备份。system state 里包含 Active Directory 数据库、SYSVOL、注册表、COM 类注册数据库出问题的时候这是唯一的后悔药。3. 主域控搭建dcpromo 向导每个选项背后的含义3.1 dcpromo 安装主域控的完整流程在 A 机器上开始运行输入 dcpromo进入 Active Directory 安装向导。在“域控制器类型”这一步选“新域的域控制器”意思是这台机器将成为林中第一个域控制器。接着在“创建一个新域”里选“在新林中的域”说明这个域是整片森林的根后面再建的域都是它的子域或树域这一步只能选这个选项没有别的余地。DNS 全名填 Jiajie.comNETBIOS 名会自动带出但还是手动改成 JIAJIE。为保险起见全大写。有些老应用解析 NETBIOS 名时区分大小写有问题全大写能省掉后续莫名其妙的连接失败。向导走到数据库和日志文件位置、SYSVOL 位置时按规划改路径就好。DNS 注册诊断选第二项后向导会让你输入还原模式密码填 adchina然后开始安装。安装结束重启登录后确认 A 机器已经变成域控。安装完成后第一件事是验证 DNS 记录。用 nslookup 查一下_ldap._tcp.dc._msdcs.Jiajie.com的 SRV 记录如果查不到多半是网卡 DNS 指向没设对或者 DNS 服务没起来。2003 上还可以看事件查看器里的 Netlogon 日志正常启动时会有 5774 事件说明 SRV 记录已经注册成功。还有一件事我每次都会做确认 C:\Windows\SYSVOL\sysvol\Jiajie.com 目录结构已经建立里面的 Policies 文件夹存在。SYSVOL 复制是域控之间同步组策略的通道它没初始化好后面辅助域控加进来也会出问题。nslookup set typesrv _ldap._tcp.dc._msdcs.Jiajie.com以上是 DNS 验证命令。set typesrv 指定查询 SRV 记录返回结果里应该能看到 A 机器的主机名和 1.1.1.1 地址。如果返回 timeout 或者 NXDOMAIN检查主域控的 DNS 服务是否启动以及网卡首选 DNS 是否指向 127.0.0.1 或 1.1.1.1。3.2 主域控上的常规配置DNS 转发器和时间源主域控的 DNS 服务安装后正常情况它能解析内部区域的记录但客户端要上外网还需要配转发器。在 DNS 管理控制台里右击服务器名属性转发器页签填一个上游 DNS。如果这个环境完全隔离不填也没关系。注意不要在主域控 DNS 上勾“如果没有转发器则使用根提示”否则它会把所有外部域名查询都发到根服务器隔离环境里会产生大量无意义的超时流量。时间源配置上我习惯在主域控上跑一遍 w32tm /config /manualpeerlist:0.pool.ntp.org,0x1 /syncfromflags:manual /update。这会让域控从外部 NTP 服务同步时间再通过域层次逐步分发。域内所有成员默认从域控同步时间所以主域控自己是全域的时间源头配好它一台其他机器不用折腾。4. 辅助域控搭建加域复制与全局编录的先后逻辑4.1 辅助域控加域前检查通信、DNS 解析、权限在 B 机器上先设置 IP1.1.1.2子网掩码 255.0.0.0首选 DNS 填 1.1.1.1。然后在命令行 ping 1.1.1.1能通再继续。ping 通只是第一步真正关键的是 nslookup 能不能解析到主域控以及能不能通过域身份验证。检查 DNS 解析用这条命令nslookup Jiajie.com 1.1.1.1这个命令向 1.1.1.1 查询 Jiajie.com 的域控记录能返回 A 机器对应的地址就说明 DNS 链路正常。比 ping 更可靠因为 ping 只测了 ICMP不保证 DNS 服务活着。接下来还要确认 B 机器能解析 A 机器的主机名nslookup A.jiajie.com 能返回 1.1.1.1才是真正准备好了。B 机器加入域之前还需要确认自己有足够的 DNS 后缀。在网卡 TCP/IP 属性里高级DNS 页签把“此连接的 DNS 后缀”设为 jiajie.com并勾上“在 DNS 注册此连接的地址”。这样 B 机器的计算机全名会变成 B.jiajie.com域控之间互相引用全名时不会解析失败。这个细节漏掉后面连接域控时经常报“找不到网络路径”。4.2 运行 dcpromo 选择“现有域的额外域控制器”B 机器上按 WinR 输入 dcpromo在域控制器类型这一步选“现有域的额外域控制器”这是辅助域控和主域控搭建唯一的向导分叉点。接下来输入有权限把机器加入域的账号格式用 JIAJIE\administrator密码用域管理员的密码。然后输入要加入的域Jiajie.com。向导会去联系主域控如果在“其他域控制器”界面出现说明 DNS 和网络已经通了这里可以直接填 A.jiajie.com。数据库路径和日志路径按规划设好目录服务还原密码同样设成 adchina。注意辅助域控的 DSRM 密码可以和主域控一样也可以不同系统不会强制一致但为了以后故障夺取时少记一个密码我一般保持一样。安装完成后重启。开机后先别急着做任何操作等几分钟让复制跑完。用 repadmin /showrepl 看复制状态确认从 A 到 B 的复制已经完成没有错误条目。检查方法repadmin /showrepl这条命令会列出当前域控的复制伙伴和最近一次复制是否成功。如果显示 “last attempt成功” 且没有 “last failure”说明初始复制已经完成。再往下就是验证 SYSVOL在 B 机器的 C:\Windows\SYSVOL\sysvol 下能看到 Jiajie.com 目录而且里面有和主域控一致的文件夹结构。4.3 全局编录为什么辅助域控默认不是 GC辅助域控搭建完成后默认不启用全局编录。2003 的域中第一台域控自动成为 GC额外域控都要手动启用。很多人在这个环节栽跟头不加全局编录的辅助域控没法处理域内用户登录时的 UPN 解析尤其当主域控出问题后客户端找不到 GC登录直接失败。打开“Active Directory 站点和服务”展开 Sites、Default-First-Site-Name、Servers找到 B 机器展开 NTDS Settings右击属性勾选“全局编录”应用并确定。建议在加域之后立刻做这一步不要拖到迁移前。勾选后 GC 副本开始从主域控复制全部目录分区的数据期间会看到 B 机器 CPU 占用升高这正常等 repadmin /showrepl 显示所有分区都复制完成再继续。判断 GC 是否生效可以在命令行跑repadmin /options B.jiajie.com输出里能看到 “IS_GC” 标记有它说明全局编录已经在这台域控上启用。稳妥的做法是主域控在迁移前保持 GC 状态不变等所有角色转到 B 之后再把 GC 从 A 移到 B。顺序反了会导致短暂时间内域内没有全局编录服务器用户登录会卡在验证环节。5. 主域控迁移前的备份与 FSMO 角色转移5.1 system state 备份迁移之前唯一的后悔药主域控的迁移不是直接拔线关机先把系统状态备份了再说。2003 上用 ntbackup 备份 system state运行里输入 ntbackup进入备份向导选“备份系统状态数据”。备份内容包括注册表、Active Directory 数据库、SYSVOL、启动文件等一整套。备份介质建议放到本机另一块磁盘或网络共享别放在 C 盘否则系统盘崩了备份也跟着没了。备份完成后验证一下备份文件能不能读取。在 ntbackup 的“还原和管理媒体”标签里右键备份文件选“编录”能正常列出 system state 组件说明文件没坏。旧环境里我见过不少备份文件看着挺大实际编录失败多半是写入时磁盘空间不足导致文件不完整。这个验证步骤别跳。如果主域控已经彻底坏了、system state 备份又没有那就只能做“灾难恢复”性质的强行夺取后面第 6 章的 seize 命令就是为这种情况准备的。有备份和没备份迁移的心态完全两样备份好的环境动起手来有底气。5.2 FSMO 五个角色分别管什么FSMO 是 Flexible Single Master Operation 的缩写五个角色分布在域和林的层面。RID 主机负责分配域内安全主体的相对 IDPDC 仿真主机管密码更改同步和时间同步基础结构主机管跨域对象的引用更新域命名主机管林中域的添加和删除架构主机管整个林的架构扩展。这五个角色在单域环境里默认都落在第一台域控上迁移的目的就是让它们换到 B 机器上继续干活。迁移顺序有个讲究先移 RID、PDC、基础结构主机这三个域级别角色再移域命名主机和架构主机这两个林级别角色。操作工具分别是“Active Directory 用户和计算机”和“Active Directory 域和信任关系”架构主机还要先注册 schmmgmt.dll。角色全部转移完成后B 机器才算是真正接替了 A 机器的域控职责。5.3 图形界面迁移 RID、PDC、基础结构主机在 B 机器上打开“Active Directory 用户和计算机”右击 Jiajie.com 域名选择“连接到域控制器”在列表里选中 B 机器确定。这一步是要让管理控制台直接连到 B而不是默认连到主域控 A。如果漏了这一步后面“操作主机”里的更改按钮是灰色的因为向导默认只在当前连接的域控上操作。右击域名选择“操作主机”弹出的窗口里有 RID、PDC、基础结构三个页签。当前主机那一行显示的是 A 机器点击“更改”系统提示确认确定后角色就从 A 换到 B。PDC 和基础结构两个页签用同样方式变更。三个角色都迁移完后关闭窗口再重开一次确认当前主机都显示 B 机器这才算真正改完。5.4 域命名主机和架构主机的迁移域命名主机在“Active Directory 域和信任关系”里操作。打开控制台右击“Active Directory 域和信任关系”根节点选择“连接到域控制器”选 B 机器。再右击根节点选“操作主机”点击更改角色就转过去了。架构主机迁移要先注册管理单元regsvr32 schmmgmt.dll这条命令注册 Active Directory 架构管理单元。然后运行 mmc打开控制台按 CtrlM 调出“添加/删除管理单元”添加“Active Directory 架构”确定。右击“Active Directory 架构”选“更改域控制器”指定名称输入 B 机器的计算机名 B.jiajie.com确定。最后右击“Active Directory 架构”选“操作主机”点更改架构主机角色就迁走了。5.5 全局编录从 A 迁到 B 的正确顺序全局编录不是 FSMO 角色但它直接影响登录验证迁移顺序错了照样翻车。文档里那一步容易让人误读我按实际操作的顺序重排一下先在 B 机器的 NTDS Settings 属性里勾选全局编录等复制完成再在 A 机器的 NTDS Settings 属性里取消全局编录。先给 B 加上 GC保证整个过程中域内始终存在至少一台 GC客户端登录不间断。有一种不好的做法是先把 A 的 GC 去掉再给 B 加上中间这段窗口期域内没有 GC所有依赖 GC 的登录验证都会失败。尤其是跨域登录和 UPN 登录表现就是登录界面输入密码后长时间无响应。如果两台域控在不同站点这个窗口期会更长因为 GC 复制跨站点有延迟。6. ntdsutil 命令行转移与故障夺取transfer 和 seize 分清楚6.1 transfer 方式迁移 RID 主机角色图形界面操作清楚了命令行方式也得掌握故障处理时比图形界面快得多。打开命令提示符输入 ntdsutil 进入工具依次敲以下命令ntdsutil roles connection connect to server B.jiajie.com quit transfer RID master第一行 ntdsutil 进入目录服务管理工具roles 进入 FSMO 维护模式connection 进入服务器连接模式connect to server 指定目标域控 Bquit 返回 FSMO 维护模式transfer RID master 执行角色转移。transfer 和 seize 的区别是transfer 要求源域控在线角色通过正常复制协议移交干净且不出后遗症seize 是强制夺取源域控不可达或者已经损坏时用但夺取后源域控如果哪天恢复上线必须重装系统或者做元数据清理否则会带着旧角色身份回来抢位置。transfer 执行过程中会提示确认输入 yes 回车。日志显示 “Transferring RID master ... succeeded”说明角色已经转移成功。其他角色把命令换成 transfer PDC、transfer infrastructure master、transfer domain naming master、transfer schema master 即可。注意 transfer schema master 时目标必须是架构主机所在域的域控单域环境直接连 B 没问题。命令汇总做成一张表命令作用transfer PDC转移 PDC 仿真主机角色transfer RID master转移 RID 主机角色transfer infrastructure master转移基础结构主机角色transfer domain naming master转移域命名主机角色transfer schema master转移架构主机角色6.2 seize 方式强制夺取角色当主域控 A 因硬件故障彻底起不来transfer 就没有意义了因为目标连不上。这时用 seize 强制夺取命令结构相同把 transfer 换成 seizentdsutil roles connection connect to server B.jiajie.com quit seize RID masterseize 执行时如果源域控不在线会直接在当前连接的域控上写角色标记并复制出去。注意在单域控残留的故障场景下seize 之后源域控如果修复并重新上线它会认为自己还是 FSMO 角色所有者导致角色冲突。处理办法是源域控不要再接入网络直接重装系统或者上线后用 ntdsutil 做元数据清理。seize 有个细节先试 transfertransfer 报错显示源域控不可达再用 seize。不要一上来就 seize角色没同步干净会留下复制隐患。这个习惯我吃了亏才养成之前有一回图省事直接 seize后来源域控恢复了域内出现两个 RID 主机账号分配 ID 冲突日志里全是 16648 报错。6.3 元数据清理故障域控复活后的收尾强制夺取后源域控的元数据还残留在目录里表现为“Active Directory 用户和计算机”里能看到 A 机器但状态变成不可用。这时候需要做元数据清理。在 B 机器上ntdsutil metadata cleanup connections connect to server B.jiajie.com quit select operation target list domains select domain 0 list servers for site in domain select server 0 quit remove selected server quit quit这段命令的作用是把故障域控 A 的残留对象从目录中移除。list domains 里的编号如果只有一个域就是 0list servers for site in domain 列出域内所有域控select server 0 选中的是待清理的 A 机器然后 remove selected server 删除它的元数据。执行完元数据清理目录里就不再包含故障域控的信息了。这一套做完才算真正把旧域控的“尸体”搬出目录。6.4 迁移后的验证清单全部角色迁移完成后在主域控的“Active Directory 用户和计算机”里右击域名选操作主机逐个页签确认当前主机都指向 B.jiajie.com。再打开“Active Directory 域和信任关系”确认域命名主机是 B打开架构管理单元确认架构主机是 B。命令行可以快速验证 FSMO 角色归属netdom query fsmo这条命令输出域内所有 FSMO 角色的当前占位主机一眼能看出有没有漏网之鱼。运行在 B 机器上如果全部显示 B说明角色迁移已经完成。注意 netdom 在 2003 里默认可能没装需要从安装光盘的 SUPPORT\TOOLS 里装支持工具。没有 netdom 的话就用图形界面逐个确认。复制是否正常也要验证repadmin /showrepl dcdiag /s:jiajie.com /e第一条确认 B 的复制伙伴状态正常第二条对全林所有域控做健康检查。dcdiag 如果报 “RID Master” 或 “Services” 相关错误多半是角色迁移后复制周期还没跑完等 15 分钟再跑一次。如果持续报错检查两台机器的 DNS 服务器地址有没有指向正确。7. 装完怎么验证跑通从登录测试到故障演练的完整闭环搭建和迁移做完必须在业务侧真正验证一遍才算跑通。我先从客户端侧做一组冒烟测试找一台 Windows XP 或 2003 的客户端确保 DNS 指向 B 机器1.1.1.2把机器加入 Jiajie.com 域用域账号登录。如果登录通过说明 Kerberos 认证、GC 解析、PDC 仿真主机都在正常工作。顺手再验证一下组策略下发。在客户端命令行敲gpresult看输出里有没有列出域策略例如 Default Domain Policy。如果 gpresult 显示组策略来自 Jiajie.com说明 SYSVOL 在 B 机器上已经正常同步并且可以被客户端读取。这一步漏掉的话经常出现域控迁移后登录正常但策略不生效的隐性故障。然后再做一次“转移回滚”演练故意把 A 机器关机模拟主域控宕机观察域内登录、文件共享、DNS 解析是否全部无障碍。如果全部正常说明辅助域控已经能独立支撑整个域的工作。做完再开 A 机器确认两者复制恢复没有冲突事件。这个演练在真实切换前至少做一遍比任何检查命令都靠谱。整个流程走完之后操作主机页签全部指向 B全局编录也在 B 上A 机器要么降级退域要么保留为普通成员服务器。如果 A 还留在域里记得把它的 DNS 也指向 B避免它自己解析自己。从那以后我每次做域控迁移强制走一遍这套验证登录测试、gpresult 查策略、netdom query fsmo 看角色归属、repadmin 看复制状态。这套组合拳打下来迁移这事才算真正闭环希望帮到你。本文还有配套的精品资源点击获取