Active Directory 从零部署完整指南
适用版本:Windows Server 2016 / 2019 / 2022预计阅读时间:25 分钟难度:中级
目录
概述:AD 域和林是什么
环境规划
第一台域控:新建林和域
客户端加入域
第二台域控:添加副本
部署后验证
常见问题排查
总结
1. 概述:AD 域和林是什么Active Directory(AD)是微软的身份认证和目录服务,几乎所有企业的 Windows 环境都依赖它。
核心概念
概念
说明
类比
林 (Forest)
AD 的最顶层容器,定义一个安全边界。一个林可以包含多个域
整个公司集团
域 (Domain)
林下的管理单元,共享同一套目录数据库
集团下的子公司
域控制器 (DC)
运行 AD DS 角色的服务器,负责认证、授权、目录查询
子公司的 HR 部门
全局编录 (GC)
包含林中所有对象部分属性的索引,用于跨域查询
集团通讯录
站点 (Site)
按网络位置分组的 DC 集合,优化复制流量
各地分公司
为什么需要域?
统一认证:一个账号登录所有加域设备
集中管理:组策略统一推送安全策略、软件、打印机
单点登录 (SSO):访问文件共享、Exchange、SQL Server 无需反复输入密码
可扩展性:支持从几十人到几十万人的规模
2. 环境规划在动手之前,先完成以下规划:
2.1 命名规划
项目
示例值
说明
林根域名
contoso.com
建议使用公网域名的子域(如 ad.contoso.com),避免与外部网站冲突
NetBIOS 名
CONTOSO
自动生成,通常取域名的前半部分
DC 主机名
DC01、DC02
建议统一命名规范
站点名
HQ-Site
按地理位置或功能命名
2.2 IP 规划
主机
IP
角色
DC01
192.168.1.10
第一台 DC(林根域控,含所有 FSMO)
DC02
192.168.1.11
副本 DC
Client01
192.168.1.100
测试加域客户端
网关
192.168.1.1
—
2.3 DNS 规划
⚠️ AD 强依赖 DNS,DNS 配置错误是导致部署失败的首要原因。
DC
主 DNS
备用 DNS
DC01(第一台)
127.0.0.1(自身)
—
DC02(副本)
192.168.1.10(DC01)
127.0.0.1
客户端
192.168.1.10
192.168.1.11
2.4 实验环境说明本文使用 Windows Server 2022 演示,以下步骤在 2016/2019 上同样适用。实验环境为两台全新安装的虚拟机:
DC01:192.168.1.10,将安装为林根域控制器
DC02:192.168.1.11,将作为副本域控制器加入
3. 第一台域控:新建林和域
执行位置:DC01(全新 Windows Server 2022,未加入任何域)所需权限:本地管理员预计时间:约 30 分钟
3.1 基础配置设置静态 IP 和主机名12# 1. 重命名计算机(完成后会自动重启)Rename-Computer -NewName "DC01" -Restart
重启后:
123456789# 2. 配置静态 IP(根据实际网卡名称调整 -InterfaceAlias)New-NetIPAddress -InterfaceAlias "Ethernet0" ` -IPAddress 192.168.1.10 ` -PrefixLength 24 ` -DefaultGateway 192.168.1.1# 3. 配置 DNS(第一台 DC,主 DNS 指向自身)Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" ` -ServerAddresses "127.0.0.1"
验证:
12Get-NetIPAddress -AddressFamily IPv4 | Where-Object PrefixOrigin -eq "Manual"Get-DnsClientServerAddress -AddressFamily IPv4
安装最新更新123# 安装所有可用更新并重启Get-WindowsUpdateInstall-WindowsUpdate -AcceptAll -AutoReboot
3.2 安装 AD DS 角色123456# 安装 Active Directory 域服务角色和管理工具Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools# 验证安装Get-WindowsFeature -Name AD-Domain-Services# 期望输出: Install State = Installed
3.3 提升为域控制器(新建林)AD DS 角色安装完成后,需要将服务器提升为域控制器。由于这是第一台 DC,我们需要新建一个林和域。
方式一:PowerShell(推荐)12345678910111213# 导入 ADDSDeployment 模块Import-Module ADDSDeployment# 提升为第一台域控,创建新林Install-ADDSForest ` -DomainName "contoso.com" ` -DomainNetBIOSName "CONTOSO" ` -ForestMode "WinThreshold" ` # WinThreshold = 最新功能级别 (2022) -DomainMode "WinThreshold" ` -InstallDNS:$true ` -SafeModeAdministratorPassword (Read-Host "输入 DSRM 密码" -AsSecureString) ` -NoRebootOnCompletion:$false ` -Force:$true
参数说明:
参数
说明
-DomainName
域名,FQDN 格式
-DomainNetBIOSName
NetBIOS 名(短名),用于旧系统兼容
-ForestMode / -DomainMode
林/域功能级别,WinThreshold 为当前最新
-InstallDNS
自动安装并配置 DNS 服务
-SafeModeAdministratorPassword
DSRM 密码,必须记住
方式二:图形界面
在服务器管理器中点击通知旗帜 → “将此服务器提升为域控制器”
选择 “添加新林”,输入根域名 contoso.com
选择林和域功能级别(建议选最新)
输入 DSRM 密码
确认 NetBIOS 名 → 下一步
确认路径 → 下一步 → 安装
⚠️ DSRM(目录服务还原模式)密码在 AD 数据库损坏恢复时需要用到,请妥善保存。
预期行为:
服务器自动重启
重启后登录方式变为 CONTOSO\Administrator(域管理员)
首次登录域账号时,AD 相关服务需要约 2-3 分钟完全启动
3.4 验证第一台 DC123456789101112131415# 1. 确认域和林信息Get-ADDomain | Format-List Name, DomainMode, ForestGet-ADForest | Format-List Name, ForestMode# 2. 确认当前 DC 信息Get-ADDomainController -Identity $env:COMPUTERNAME | Format-List Name, Site, IsGlobalCatalog# 3. 确认 FSMO 角色(全部 5 个角色应在 DC01 上)netdom query fsmo# 4. DNS 诊断dcdiag /test:dns# 5. 确认默认站点和子网(提升时会自动创建 Default-First-Site-Name)Get-ADReplicationSite -Filter *
4. 客户端加入域
执行位置:Client01(Windows 10/11 或 Windows Server)前提:客户端 DNS 指向 DC01(192.168.1.10)
4.1 配置客户端 DNS123456Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" ` -ServerAddresses ("192.168.1.10", "192.168.1.11")# 验证nslookup contoso.com# 应返回 DC01 的 IP
4.2 加入域PowerShell12Add-Computer -DomainName "contoso.com" -Credential (Get-Credential) -Restart# 弹出凭据框,输入 CONTOSO\Administrator 和密码
图形界面
右键”此电脑” → 属性 → 高级系统设置
“计算机名” 选项卡 → “更改”
选择 “域”,输入 contoso.com
输入域管理员凭据
重启
4.3 验证加域重启后,登录界面应显示 CONTOSO\用户名 格式。使用域账号登录:
123456# 确认已加入域(Get-CimInstance Win32_ComputerSystem).PartOfDomain# True# 查看域中的计算机对象Get-ADComputer -Filter * | Select-Object Name, DNSHostName, Enabled
5. 第二台域控:添加副本
执行位置:DC02(全新 Windows Server 2022)前提:DC01 运行正常,且 DNS 指向 DC01
5.1 基础配置参照 3.1 节,在 DC02 上完成:
12345678910# 主机名Rename-Computer -NewName "DC02" -Restart# 静态 IPNew-NetIPAddress -InterfaceAlias "Ethernet0" ` -IPAddress 192.168.1.11 -PrefixLength 24 -DefaultGateway 192.168.1.1# DNS 指向 DC01(提升前)Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" ` -ServerAddresses ("192.168.1.10", "127.0.0.1")
5.2 配置时间同步(加入域前)
⚠️ 时间偏差 > 5 分钟会导致 Kerberos 认证失败。
12345678# 确保时区正确Set-TimeZone -Name "China Standard Time"# 先同步到外部 NTPw32tm /config /manualpeerlist:"ntp.aliyun.com,ntp.tencent.com" /syncfromflags:manual /updateRestart-Service w32timew32tm /resync /forcew32tm /query /source
5.3 加入域1Add-Computer -DomainName "contoso.com" -Credential (Get-Credential) -Restart
5.4 安装 AD DS 角色并提升为副本 DC重启后以域管理员登录 DC02:
12345678910111213# 1. 安装 AD DS 角色Install-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools# 2. 提升为副本域控制器Install-ADDSDomainController ` -DomainName "contoso.com" ` -SiteName "Default-First-Site-Name" ` -InstallDNS:$true ` -GlobalCatalog:$true ` -Credential (Get-Credential) ` -SafeModeAdministratorPassword (Read-Host "输入 DSRM 密码" -AsSecureString) ` -NoRebootOnCompletion:$false ` -Force:$true
5.5 配置 DNS 指向提升后,DC02 的 DNS 应改回自身:
12Set-DnsClientServerAddress -InterfaceAlias "Ethernet0" ` -ServerAddresses ("127.0.0.1", "192.168.1.10")
6. 部署后验证
建议在 DC01 和 DC02 上分别执行以下验证。
6.1 AD 复制检查1234567891011# 全局复制状态摘要(最重要的一项)repadmin /replsummary# 期望: 0 fails across all DCs# 本机复制详情repadmin /showrepl# 期望: 所有命名上下文 @ SUCCESS# 复制诊断dcdiag /test:replications# 期望: passed test Replications
6.2 DNS 检查12345678910# DNS 整体诊断dcdiag /test:dns# SRV 记录注册 — AD 依赖此记录让客户端找到 DCnslookup -type=SRV _ldap._tcp.contoso.com# 期望: 结果包含 DC01 和 DC02# A 记录nslookup DC01.contoso.comnslookup DC02.contoso.com
6.3 GC 和 FSMO 确认12345# 列出所有 DC 和 GC 状态Get-ADDomainController -Filter * | Format-Table Name, Site, IsGlobalCatalog# FSMO 角色分布netdom query fsmo
6.4 时间同步确认123456# DC02 的时间源应为 DC01(PDC 角色持有者)w32tm /query /source# 期望: DC01.contoso.comw32tm /query /status# 检查 Leap Indicator = 0(无闰秒警告)
6.5 SYSVOL / NETLOGON12345# 检查共享net share | Select-String "SYSVOL|NETLOGON"# SYSVOL 一致性dcdiag /test:sysvolcheck
6.6 事件日志1234# 各关键日志无 Error 事件Get-WinEvent -LogName "Directory Service" -MaxEvents 5 | Where-Object Level -le 2Get-WinEvent -LogName "DNS Server" -MaxEvents 5 | Where-Object Level -le 2Get-WinEvent -LogName "System" -MaxEvents 5 | Where-Object ProviderName -like "*KDC*"
6.7 组策略验证12gpupdate /forcegpresult /r /scope:computer | Select-String "Default Domain Controllers Policy"
6.8 全量诊断(最终检查)12345678# 在所有 DC 上执行dcdiag# 期望: 所有测试 "passed"# 如果某个测试失败,单独查看详情:dcdiag /test:DNSdcdiag /test:Replicationsdcdiag /test:SysVolCheck
7. 常见问题排查7.1 提升时报错:”无法联系域控制器”原因:DNS 未指向现有 DC,或 DNS 服务器上无正确的 SRV 记录。
排查:
12345678# 确认 DNS 配置Get-DnsClientServerAddress -AddressFamily IPv4# 确认能解析域nslookup contoso.com# 确认 SRV 记录存在nslookup -type=SRV _ldap._tcp.contoso.com
7.2 复制失败症状:repadmin /replsummary 显示 fails。
排查:
12345678910# 查看具体复制失败原因repadmin /showrepl# 常见原因:# 1. 防火墙阻止(确保 TCP 135, 389, 445, 3268 端口开放)# 2. DNS 解析失败# 3. 时间偏差过大 (>5 分钟)# 手动触发复制测试repadmin /syncall /AdeP
7.3 SYSVOL/NETLOGON 共享不存在症状:net share 中无 SYSVOL 或 NETLOGON。
原因:提升后需要等待 SYSVOL 复制完成。新林中这通常很快(几分钟),但在大环境中可能需要更长时间。
123456# 检查 DFS Replication 服务Get-Service DFSR # 2012 R2+Get-Service NTFRS # 2008 R2 及更早# 检查 SYSVOL 复制状态dcdiag /test:sysvolcheck
7.4 时间同步偏差症状:Kerberos 认证报错,事件 ID 4(KDC),或用户无法登录。
排查:
12345678910# 1. 检查同步源w32tm /query /source# 2. 检查同步模式(DC 应为 NT5DS 或手动 NTP)w32tm /query /configuration | Select-String "Type"# 3. 如果不是 NT5DS,重置:w32tm /config /syncfromflags:domhier /updateRestart-Service w32timew32tm /resync /force
注意:PDC 仿真器角色的 DC 必须配置为外部 NTP 源(手动模式),其余 DC 应配置为 NT5DS(域层次同步)。
8. 总结本文覆盖了 Active Directory 从零部署的完整流程:
步骤
说明
规划
域名、IP、DNS、主机名
第一台 DC
基础配置 → 安装 AD DS 角色 → 提升为林根域控
客户端加域
DNS 指向 DC → 加域 → 验证
副本 DC
基础配置 → 加域 → 安装角色 → 提升为副本
验证
复制、DNS、GC、时间同步、SYSVOL、日志
关键要点
DNS 是 AD 的基石 — DNS 配置错误是部署失败的首要原因
时间同步至关重要 — 偏差 > 5 分钟 = Kerberos 失败
DSRM 密码必须保存 — 忘记后 AD 恢复将非常困难
逐台验证 — 每台 DC 提升后立即执行 repadmin /replsummary 和 dcdiag
先单台后多台 — 第一台完全正常后再部署副本,降低排错复杂度
如果对某个步骤有疑问,欢迎在评论区留言讨论。