简介:面向Windows Server 2003环境下需要搭建主/辅助域控并完成域控制器迁移的系统管理员与运维学习者,这份资料将搭建与迁移全过程整理成可直接跟做的操作笔记。内容先从主域控安装向导开始,涵盖DNS全名与NETBIOS名设置、目录还原密码等关键配置;再说明辅助域控的IP/DNS规划、连通性检查及加入现有域的操作。主域控迁移部分重点介绍FSMO五大角色的转移流程,包括RID、PDC、基础结构、域命名和架构主机,分别给出图形界面操作与ntdsutil命令行两种方式,并附有全局编录调整及域控故障不可恢复时强制夺取角色的命令参考。资源为1个docx文档,压缩包约566KB,内容结构清晰,便于直接查阅与打印对照。已有2060人学习下载,对从事活动目录运维或准备域控实验的读者有直接参考价值。
1. 主域控与辅助域控:先分清搭建顺序和迁移的先后关系
接手 Windows AD 环境的人,最先要补的课是分清主域控、辅助域控的搭建顺序和主域控制器迁移的先后关系。很多人以为域控就是一台保存账号密码的服务器,坏了就重装一台加回域里,结果新域控迟迟不接管认证,老域控一旦宕机,整个办公网全部掉线。实际原因是 AD 把架构主机、RID 主机等五个 FSMO 角色固定在原主域控上,辅助域控复制不过来,环境就只是“看着有主备,其实顶不上”。这篇就按主域控搭建、辅助域控搭建、主域控制器迁移三步走,把从零部署到角色转移、旧机降级的完整路径和排错参数写清楚。适合刚接手 AD 的运维,也适合做旧域控置换、硬件换代的工程师。
2. 第一台主域控的搭建:从 Server 安装到 DNS 落地
2.1 主域控搭建前的规划项:域名、NetBIOS 名和静态 IP
先把域名定下来再动系统盘。常见做法是给 AD 单独规划一个子域,比如对外官网是 corp.com,AD 域就设成 ad.corp.com,不要让 AD 直接整域用 corp.com,否则内网 DNS 会截获对外解析,员工访问官网被解析到域控内网 IP,证书和邮件跟着出问题。旧的 .local 习惯能不用就不用,链路本地 mDNS 会占用 .local 区段,部分物联网设备和客户端会来抢答,排查起来非常绕。
同一张规划表里还要定主机名、静态 IP 和 DSRM 密码。主机名建议按角色规划,主域控叫 SRV-DC01、辅助域控叫 SRV-DC02,装完 AD 再改主机名会触发一系列额外步骤,所以要先改好、重启完再继续。NetBIOS 名取 CORP,15 个字符以内是硬性限制;DSRM 是目录还原模式密码,不是域管理员密码,两台域控可以用不同值,但必须单独记录。系统盘只放 Windows Server 本体,NTDS 数据库和 SYSVOL 落到独立的数据盘,后面迁移和扩容时不用挪系统盘。
| 规划项 | 推荐值 | 说明 |
|---|---|---|
| AD 域名 | ad.corp.com | 与对外域名分开,避免内外 DNS 抢答 |
| NetBIOS 名 | CORP | 15 字符以内,安装后建议不要改 |
| 主机名 | SRV-DC01 | 装 AD DS 前先改好并重启 |
| 静态 IP | 10.10.0.10/24 | DNS 指向自己 10.10.0.10 |
| DSRM 密码 | 独立强密码 | 与域管理员密码区分开并单独存档 |
2.2 用 PowerShell 创建新林的安装命令
图形安装向导的本质也是调用 ADDSDeployment 模块,用 PowerShell 的优点是参数一次成型、能在 Server Core 上用、方便固化成安装文档。第一步只装角色,不会立刻重启:
# 安装 AD DS 角色和 RSAT 远程管理工具 Install-WindowsFeature AD-Domain-Services -IncludeManagementTools这条命令把 Active Directory 域服务角色安装到服务器上,-IncludeManagementTools同时带上 AD 管理中心、组策略管理等管理单元,图形界面管理员的常用组件一次到位。角色装完后,紧接着创建新森林:
Import-Module ADDSDeployment $dsrm = ConvertTo-SecureString "P@ssw0rd-2025" -AsPlainText -Force Install-ADDSForest ` -DomainName "ad.corp.com" ` -DomainNetbiosName "CORP" ` -ForestMode "WinThreshold" ` -DomainMode "WinThreshold" ` -InstallDns:$true ` -DatabasePath "D:\Windows\NTDS" ` -LogPath "D:\Windows\NTDS" ` -SysvolPath "D:\Windows\SYSVOL" ` -SafeModeAdministratorPassword $dsrm ` -Force:$true关键参数逐个说:-DomainName指定完整 AD 域名,-DomainNetbiosName指定登录前缀,不写会自动取域名第一个标签,通常不符合命名规范。-ForestMode和-DomainMode都传 WinThreshold,这是 Server 2016 及以上的功能级别标识,Server 2019、Server 2022 也沿用这个字符串,表示新森林允许更高版本的域控加入。-InstallDns让它自动搭 DNS,主域控不装 DNS,后面辅助域控复制和客户端解析都会很难受。数据库、日志、SYSVOL 三个路径都指向 D 盘,避免系统盘被 AD 数据拖垮。-SafeModeAdministratorPassword就是 DSRM 密码,用ConvertTo-SecureString转成安全字符串再传,避免明文密码出现在 PowerShell 历史记录里。执行完服务器自动重启,这台机器就是本域的初始主域控,五个 FSMO 角色全部默认落在它身上。
2.3 主域控装完后的 SYSVOL 与时间源收尾
重启回来先别急着建用户,先确认 SYSVOL 和 NETLOGON 共享已经出现。
# 查看 SYSVOL 和 NETLOGON 共享是否已就绪 net share # 确认 SYSVOL 复制已落到 DFS-R 状态 dfsrmig /getmigrationstate # 把主域控配置成可靠时间源,并向公网 NTP 同步 w32tm /config /manualpeerlist:"pool.ntp.org" /syncfromflags:manual /reliable:yes /update w32tm /resyncnet share 看不到 SYSVOL,说明复制初始化没跑完,先等 15 分钟再查,不要直接重启域控。dfsrmig 的输出里出现 Eliminated(已消除)才是正常终态。时间源这步是很多人漏掉的一环:域内所有服务器和客户端默认向域控同步时间,而主域控要自己向可靠的外部 NTP 源同步。比如 pool.ntp.org 是公网 NTP 池,内网有条件也可以换成企业自己的时间服务器,重点是 PDC 模拟器角色必须标记为“可靠”。
3. 辅助域控搭建:加域、装 AD DS、等复制收敛
3.1 辅助域控为什么不能靠克隆快照顶上
AD 域控主备域控搭建,最常见的错误是图省事,直接把主域控的虚拟机复制一份当辅助域控。复制出来的两台域控 invocation ID 相同,AD 复制引擎会认为它们是一台机器,同步请求直接绕过去,灾难发生时根本拉不出数据;如果再把旧快照恢复,会出现 USN 回滚,比不建辅助域控更麻烦。虚拟化平台的复制和快照功能本身没有问题,但域控不是普通应用服务器,不能按“复制粘贴”的思路建副本。微软提供域控制器克隆功能,前提是虚拟化环境、需要先在 PDC 模拟器上授权,日常搭建辅助域控没必要为了省 20 分钟装系统时间引入这个复杂度。干净装一台 Windows Server,加入现有域,再装 AD DS 角色,是最稳的路径。
3.2 附加域控的安装命令与参数差异
第二台服务器先按 2.1 的表做同样规划,主机名 SRV-DC02、静态 IP 10.10.0.11、DNS 指向主域控 10.10.0.10。然后执行:
# 为 SRV-DC02 安装 AD DS 角色 Install-WindowsFeature AD-Domain-Services -IncludeManagementTools Import-Module ADDSDeployment $dsrm = ConvertTo-SecureString "P@ssw0rd-2026" -AsPlainText -Force # 以域管理员身份,将本机安装为 ad.corp.com 的附加域控 Install-ADDSDomainController ` -DomainName "ad.corp.com" ` -SiteName "Default-First-Site-Name" ` -InstallDns:$true ` -DatabasePath "D:\Windows\NTDS" ` -LogPath "D:\Windows\NTDS" ` -SysvolPath "D:\Windows\SYSVOL" ` -SafeModeAdministratorPassword $dsrm ` -Credential (Get-Credential CORP\Administrator) ` -Force:$true与 Install-ADDSForest 对照看差异:这里没有-DomainNetbiosName、-ForestMode、-DomainMode,因为本机加入现有域,沿用主域控的配置;多了-SiteName,单站点环境保持默认的 Default-First-Site-Name 就行,多站点环境要先在 AD 站点和服务里查清楚站点名,填错会把域控放进错误站点,复制拓扑直接乱掉。-InstallDns同样建议开启,辅助域控带 DNS 副本后,客户端可以冗余解析。-Credential用Get-Credential弹出认证框输入CORP\Administrator,安装过程中会自动完成加域,不需要预先Add-Computer。整个命令跑完自动重启,SYSVOL 和 NETLOGON 会从主域控复制过来。
3.3 用 repadmin 验证主备复制收敛
辅助域控起来后,AD 复制是异步的,不会立刻同步完毕。同站点内每 15 秒有一次变更通知,正常几分钟内收敛,但磁盘慢、对象多或者刚做完大量变更的环境,可能拖到十几分钟。用 repadmin 看最准确:
# 汇总所有域控之间的复制成功和失败次数 repadmin /replsummary # 查看每台域控的入站复制伙伴与上次成功时间 repadmin /showrepl/ReplSummary 的输出里,如果 SRV-DC02 连续两次出现在失败列,说明复制没有建立起来,先记下错误码再查具体伙伴关系。
3.3.1 repadmin 常用参数对照
| 命令 | 用途 |
|---|---|
| repadmin /replsummary | 先跑这条,所有域控的复制成功/失败一览无余 |
| repadmin /showrepl | 定位哪台域控从哪个伙伴同步失败,看上次成功时间 |
| repadmin /queue | 看复制队列堆积,持续增长说明网络带宽或对象数量异常 |
| repadmin /syncall /AdeP | 向所有复制伙伴发起强制同步,排错后立刻拉到最新 |
排错时先看各域控的 DNS 指向,其次看时间。复制失败的头号原因是 _msdcs 区域的 SRV 记录解析不到对方域控,用 nslookup 手动查:
nslookup -type=SRV _ldap._tcp.dc._msdcs.ad.corp.com确认两台域控都出现在返回列表里,再看两台机器的系统时间。Kerberos 默认允许 5 分钟偏差,超过就直接拒绝认证,复制报权限不足大多是时间问题而不是账号问题。防火墙方面,单站点域内通常网络策略统一放行,若要收紧,需要放行 TCP 135、389、445、3268 以及动态 RPC 端口段,少放一个都会间歇性复制失败。
4. 主域控制器迁移:FSMO 转移与旧机降级
4.1 FSMO 角色清单:迁移前先认清五个角色
现代 AD 已经没有传统意义上“主域控、备份域控”的物理区分,但日常说“把主域控迁移到新机器”,本质上就是把五个 FSMO 角色换到另一台域控上,其中 PDC 模拟器角色最牵动日常使用。五个角色两个属于森林级别,三个属于域级别:
| 角色 | 作用域 | 丢了会怎样 |
|---|---|---|
| 架构主机 Schema Master | 森林 | 不能改架构,Exchange、新版系统推 Schema 会失败 |
| 域命名主机 Domain Naming Master | 森林 | 不能新增或删除域和应用分区 |
| RID 主机 RID Master | 域 | 域内新建账号和计算机时 RID 池耗尽后停止分配 |
| PDC 模拟器 PDC Emulator | 域 | 密码变更处理、客户端默认时间源、组策略默认处理都走它 |
| 基础结构主机 Infrastructure Master | 域 | 跨域对象引用更新异常 |
迁移第一步不是动命令,而是把所有角色当前持有者看清楚:
# 查看域级别的三个角色持有者 Get-ADDomain | Select-Object PDCEmulator, RIDMaster, InfrastructureMaster # 查看森林级别的两个角色持有者 Get-ADForest | Select-Object SchemaMaster, DomainNamingMaster输出里如果持主者写着 SRV-DC01,说明迁移对象判断正确;如果已经不在预期机器上,先查是不是以前做过半截迁移。
4.2 迁移前检查:复制状态、GC 与 DNS SRV
角色要迁到哪台,哪台必须先确认健康。在目标辅助域控上依次跑三条检查命令:
# 1. 复制无错误 repadmin /replsummary # 2. 目标域控已完成全局编录角色 Get-ADDomainController -Filter * | Select-Object Name, Site, IsGlobalCatalog # 3. DNS 的 _msdcs 区域已注册目标域控的 SRV 记录 nslookup -type=SRV _ldap._tcp.dc._msdcs.ad.corp.com复制摘要里出现连续两次失败,先别迁,查原因;IsGlobalCatalog 为 False,先勾选全局编录等复制;SRV 记录里没有目标域控,先ipconfig /registerdns重新注册。这三条都过了,再执行迁移动作。迁移本质是角色指针的转移,对终端用户来说基本无感,属于准不停服、不丢数据的路径,但前提是域内复制干净,否则角色过去也是一台病号。
4.3 执行角色转移的命令与确认
转移和夺取用的是同一个 Move-ADDirectoryServerOperationMasterRole,区别只在于目标域控能否联系到当前持有者。正常在线转移这样写:
# 把五个 FSMO 角色全部转移到 SRV-DC02 Move-ADDirectoryServerOperationMasterRole ` -Identity "SRV-DC02" ` -OperationMasterRole 0,1,2,3,4 ` -Force:$true # 转移后重新查询,确认持有者已变更 Get-ADDomain | Format-List PDCEmulator, RIDMaster, InfrastructureMaster Get-ADForest | Format-List SchemaMaster, DomainNamingMaster-OperationMasterRole的 0、1、2、3、4 分别对应 SchemaMaster、DomainNamingMaster、PDCEmulator、RIDMaster、InfrastructureMaster,五个角色一次转走;想逐个转也可以传角色名称。转移完成后,把 DHCP 和客户端本机的首选 DNS 指向 SRV-DC02,同时给新主域控补上“可靠时间源”标记,因为 PDC 模拟器以后是域内时间权威:
# 新主域控设为可靠时间源 w32tm /config /reliable:yes /update4.4 旧主域控降级与元数据清理
角色转移完,旧主域控就不再承担特殊职责,可以降级。Server 2012 之后 dcpromo 已经被移除,统一用 Uninstall-ADDSDomainController:
Import-Module ADDSDeployment # 降级这台域控,角色已手动转移,这里不再尝试转移 Uninstall-ADDSDomainController ` -DemoteOperationMasterRole:$false ` -RemoveApplicationPartitions:$true ` -Force:$true-DemoteOperationMasterRole传 false 是因为五个角色已经在 4.3 手动转移,告诉安装流程不要再碰角色;-RemoveApplicationPartitions会把 DNS 等应用程序分区在本机的副本移除。执行完自动重启,服务器已经不再以域控身份运行,接着退出域:
# 把旧服务器退出 ad.corp.com 域 Remove-Computer -UnjoinDomainCredential (Get-Credential CORP\Administrator) -Force -Restart整机下线后,AD 数据库里还残留旧域控的元数据,不清理的话 DNS 区域里会继续出现僵木记录。清理工作在任意一台在线域控上执行:
# 从 AD 数据库删除已下线的域控对象 Remove-ADDomainController -Identity "SRV-DC01" -Force执行完到 DNS 管理器把旧主域控的 A 记录和 _msdcs 下的相关记录手工删除。顺序不要搞反:先正常降级,再退域,最后清元数据。
4.5 旧机宕机时的 FSMO 夺取
旧主域控已经起不来、无法配合转移时,走夺取流程。同一个 Move 命令带上-Force,就会跳过对原持有者的在线尝试,直接在目标域控上写入角色:
# 逐个夺取五个 FSMO 角色 $target = "SRV-DC02" $roles = "SchemaMaster","DomainNamingMaster","PDCEmulator","RIDMaster","InfrastructureMaster" foreach ($role in $roles) { Move-ADDirectoryServerOperationMasterRole -Identity $target -OperationMasterRole $role -Force -Confirm:$false Write-Host "$role 已夺取到 $target" }注意:夺取之后,旧域控如果恢复上线,必须先降级并清理元数据,否则两台域控会同时声称持有同一 FSMO 角色,客户端寻址出现不确定行为,这种脑裂的恢复成本远高于重装一台域控。
5. 迁移后的验证方法:DNS、GPO 与 SYSVOL 复制的三个技巧
5.1 用 dcdiag 和 repadmin 做迁移后体检
迁移做完先跑一次全量诊断:
# 全面测试 DNS、登录、复制,只回显错误 dcdiag /v /q # 复制健康与拓扑 repadmin /replsummary repadmin /showrepldcdiag 只要出现 FAIL 就不要收工。迁移最常见的遗留问题是旧域控残留记录导致 DNS 测试失败,此时删掉 4.4 里的旧记录再重跑,而不是拖过去。repadmin /showrepl 里两台域控的 Last Success 应该都在几分钟内。
5.2 三个容易被忽略的细节:GPO、SYSVOL 与时间源
第一个细节是 GPO 的实体文件有没有跨域控复制。GPO 的 GPT(Group Policy Template)目录存放在 SYSVOL 里,两台域控的 C:\Windows\SYSVOL\sysvol\ad.corp.com\Policies 下,GUID 文件夹应该一致。不一致时客户端登录会间歇性拿不到策略,先在辅助域控上手工对比文件夹,再看 DFSR 事件。
第二个细节是 SYSVOL 的 DFSR 状态。用 2.3 里那条 dfsrmig /getmigrationstate,主备两台都显示 Eliminated 才是正常。如果一台停在 Start,说明 SYSVOL 复制没有接管,客户端会出现“找不到网络路径”的策略报错。
第三个细节是时间同步链路。迁移后客户端开不了共享、报“登录失败:目标帐户名称不正确”时,先看时间:
# 客户端查看时间源,应指向新主域控 w32tm /query /source # 强制重新发现并同步一次 w32tm /resync /rediscover客户端时间源显示的是本地 CMOS 而不是域控,查 UDP 123 端口和 Windows Time 服务启动状态。DNS 的 SRV 记录缺失时,先ipconfig /registerdns,再repadmin /syncall /AdeP拉一次全量同步,比重启两台域控快得多。
本文还有配套的精品资源,点击获取