机房里有十来台机器,要求装系统、配账号、共享文件,刚开始用工作组还凑合,后面发现每次换一台电脑就要重新设置权限,员工忘记密码只能挨个去重置,共享文件夹的访问记录也没法集中审计。很多人这时候都会想到部署一套Active Directory域控服务,让Windows客户端统一纳入域管理。这篇就以Windows Server 2016为例,把从DNS规划、装域控角色、提升域控制器,到Windows 10客户端加入域的完整流程全部捋一遍。不说废话,直接按操作顺序来,每一步都标注好我实际配置时用的参数和最容易踩坑的点。
整个部署过程我确实踩了不少坑,比如DNS指向顺序写错导致域控找不到,DSRM密码记错后卡在恢复模式,客户端因为是家庭中文版死活加不了域等等。这些问题的排查方法我会放在后面的故障章节里,你可以直接对照查阅。
1. 部署前的环境规划与关键参数准备
很多朋友拿到一台Windows Server 2016就直接开始装域控,结果装完发现IP地址是自动获取的、计算机名带着一串随机字符、域名还选了个跟自家公网域名冲突的名字。先把环境规划清楚,后面能省掉大把麻烦。
1.1 服务器与客户端的基本要求
域控制器本质上是给整片网络里的电脑做身份认证和策略下发的核心,硬件上不用太夸张,但也不能太寒酸。单域控、客户端数量在百台以内时,我推荐配置如下:
| 项目 | 最低要求 | 实际推荐 |
|---|---|---|
| CPU | 双核 1.4GHz | 4核以上 |
| 内存 | 2GB | 8GB以上 |
| 磁盘 | 40GB | 系统盘和数据盘分离,建议200GB起步 |
| 网卡 | 千兆 | 千兆,有条件上双网卡 |
系统方面,Windows Server 2016 Standard或Datacenter均可以,需要确保是完整安装版而不是Server Core,因为图形界面在初学阶段能大大降低操作门槛。如果你手头已经有Server 2022,操作流程和界面基本类似,这篇的内容同样适用,只是有些功能升级换了个入口而已。客户端则是Windows 10企业版或专业版,家庭版是没法加入域的,这个后面会有具体说明。
1.2 固定IP、计算机名与域名的确定
域控制器最重要的一条规则:必须使用静态IP。因为客户端需要长期、稳定地通过这个IP找到域控,如果是DHCP自动获取,哪天路由器重新分配了IP段,整片网络都找不到域了。
我在某次部署中用的参数是:
- 服务器IP:192.168.16.10
- 子网掩码:255.255.255.0
- 默认网关:192.168.16.1
- 首选DNS:192.168.16.10(先填本机IP,后面装完域控自动生效)
计算机名方面,不建议保留系统默认那串“WIN-RANDOMHASH”之类的名字,按照你公司的命名规范改成类似“DC01”这种一眼就能看出用途的名字。域名我建议使用corp.local或类似以.local结尾的内部域名。这有个讲究:如果用了真实注册域名比如example.com,客户端上网时DNS解析就会出现内部和外部解析冲突;用.local这类保留域名,则是微软官方支持的内网专用做法。
1.3 密码与安全基础准备
域控涉及两类密码,一开始就要规划好:一是本地管理员Administrator密码,在域控提升过程中会强制要求设置复杂强密码;二是后面会提到的DSRM目录服务还原模式密码,这个不是日常登录用的,但万一系统崩溃要修复AD数据库时就必须用到。我见过不少人在这一步随手敲了个简单密码,结果忘记后恢复环境时直接傻眼。
2. 在Windows Server 2016上安装AD域服务
环境准备就绪后,开始正式安装域服务角色。你可以选择图形化界面的服务器管理器,也可以用PowerShell一把梭。两种都写一下,方便不同习惯的人。
2.1 通过服务器管理器添加角色
打开服务器管理器,点击仪表盘右上角的“添加角色和功能”,直接下一步进入“安装类型”,选择“基于角色或基于功能的安装”。然后选择当前服务器,在“服务器角色”列表里勾选“Active Directory域服务”。
它会弹出一个小窗口提示需要添加一些功能,选“添加功能”即可。一路下一步到“确认”页面,勾选“如果需要,自动重新启动目标服务器”。最后点“安装”,等待进度条跑完。整个过程大概需要几分钟,取决于磁盘性能。
2.2 使用PowerShell快速安装
习惯命令行操作的话,在管理员身份的PowerShell里敲下面这条命令即可:
Install-WindowsFeature AD-Domain-Services -IncludeManagementTools-IncludeManagementTools参数非常关键,它会把AD用户和计算机、AD管理工具等一并装上。如果漏了,后面还要单独去安装管理工具,多此一举。装完后看到输出里“安装成功”字样就行,系统这时还没变成域控,只是安装了角色,需要继续执行“提升为域控制器”的操作。
2.3 确认角色安装状态
安装完成后,你可以打开“工具”菜单,里面已经出现了“Active Directory用户和计算机”、“Active Directory域和信任关系”、“DNS”这几项,但点进去会提示没有可用数据。这是正常的,因为服务器还没被提升为域控,只有完成提升,这些管理单元才会指向真正的AD数据库。
3. 提升服务器为域控制器
角色装好,服务器管理器顶部会亮起一面黄色小旗子,点击它选择“将此服务器提升为域控制器”。这一步是整个部署的核心。
3.1 选择部署配置并创建新林
在“部署配置”界面,选择“添加新林”,输入根域名corp.local。这里要特别确认一点:你的环境里当前没有其他域控,这是第一台,所以选“添加新林”;如果以后要加第二台,则要选“将域控制器添加到现有域”。
点击“下一步”,进入“域控制器选项”。
3.2 设置林级别、DNS委派与DSRM密码
“林功能级别”和“域功能级别”都选择“Windows Server 2016”。不用选更高版本,因为域控功能级别决定的是此环境下能接纳哪些旧版本的域控,以及启用的AD高级功能。选2016意味着后续只允许Server 2016及以上的系统加入进来,在普遍已经都是较新系统的环境中是没问题的。
保持勾选“DNS服务器”和“全局编录(GC)”,这是默认推荐选项。“全局编录”需要特别强调:它让域控能查询整个林内所有对象的属性,没有GC,客户端在做跨域登录和地址簿查找时就会卡顿或失败。
接下来要设置DSRM密码。这是目录服务还原模式的密码,不是域管理员密码。实用性建议:把DSRM丢进公司密码管理库里,或者至少写进记事本存好。设置时注意满足复杂要求,至少8位,包含大写、小写、数字和特殊字符中的三种以上。
3.3 指定数据库、日志和SYSVOL路径
这里是很多人容易忽略的细节。默认情况下这些都是放在C盘,但如果你的C盘空间紧张或者SSD和数据盘分开,强烈建议把AD数据库、日志文件和SYSVOL目录移到数据盘。给个参考:
- 数据库文件夹:D:\ActiveDirectory\NTDS
- 日志文件文件夹:D:\ActiveDirectory\NTDS
- SYSVOL文件夹:D:\ActiveDirectory\SYSVOL
为什么这样建议?因为AD数据库和SYSVOL的读写频率非常频繁,放系统盘一方面会占用C盘空间,另一方面如果C盘崩了,恢复AD和SYSVOL会非常痛苦。分开存放,后续备份系统状态时也更灵活。当然,如果服务器只有一块磁盘,那就老实用默认路径。
点击“下一步”,会看到NetBIOS域名,通常默认为“CORP”,保持默认即可。继续下一步,会提示DNS委派创建失败,这是常见的提示,不需要太紧张,一般是因为根域没有上级DNS区域导致的,直接忽略继续即可。只要后续DNS验证没问题,这个提示可以无视。
3.4 执行提升并重启
最后确认所有配置无误,点击“安装”。系统开始配置AD数据库、创建SYSVOL共享、注册SRV记录,整个过程大约十几分钟,中途自动重启。重启完成后,服务器管理器里会看到Azure AD Connect提示什么的,不需要管。此时服务器已经是一台真正的域控制器了。
验证方法:用域账号登录,也就是“CORP\Administrator”格式,而不是本机原来的“.\Administrator”。打开AD用户和计算机,应该能正常显示域结构;打开DNS管理器,能看到corp.local正向查找区域。
4. DNS与AD集成区域验证
很多人以为域控装完就万事大吉,结果客户端加域时直接报“找不到域控制器”,十有八九是DNS没验证到位。AD域控与DNS是深度绑定的,域控制器的定位信息全部靠DNS的SRV记录,这一步必须做扎实。
4.1 检查DNS区域结构
打开DNS管理器,展开“正向查找区域”,正常情况下会有两个区域:
- corp.local
- _msdcs.corp.local
后者是AD特有域控定位区域,里面存放着_tcp、_sites、_udp等子项,这些是域控自动生成的,不用手工配置。如果_msdcs区域缺失或里面没有对应记录,说明提升过程中DNS记录生成失败,这种情况通常源自安装DNS角色之前的IP配置问题,需要重新审视DNS指向。
4.2 使用nslookup和dcdiag验证
打开命令提示符,执行以下命令:
nslookup -type=SRV _ldap._tcp.corp.local正常会返回一个应答,指向DC01.corp.local。如果返回“找不到”或serverfail,则SRV记录有问题。
更全面的检查用微软自带的域控诊断工具:
dcdiag /v如果输出末尾的“Summary”和“分区测试”均为“pASSED”,代表这台域控的健康状态是合格的。测试过程会涉及DNS、复制、文件复制服务(SYSVOL)、用户权限等多个项目,部分项目报“warning”不一定是致命问题,但只要有“FAIL”就必须处理。
4.3 客户端初步连通性测试
在正式加入域前,我习惯先拿一台测试机对域控做ping测试和DNS解析测试:
ping DC01.corp.local nslookup corp.local 192.168.16.10如果解析出的IP和域控实际IP一致,且ping能通,说明DNS和网络基本OK。这里要养成一个习惯:测试机不要用域控来ping外网,那是另一回事,用来解析内部域名和域控定位是关键。
5. 创建组织单位与域用户账号
域控制器搭好,你已经有了一整套身份认证中心。接下来要做的,就是在AD里建组织结构和用户账号,客户端加域后,用户才能用统一的域账号登录。
5.1 新建组织单位和用户
打开“Active Directory用户和计算机”,在域名节点下右键“新建”->“组织单位”,输入“某研发部”作为OU名称。组织单位的意义在于,你可以针对不同部门应用不同的组策略,后续管理非常方便。
在对应OU下右键“新建”->“用户”,填写姓或名(比如“zhangsan”),登录名为zhangsan@corp.local。点击下一步,设置密码,注意这里的密码策略受到域默认策略约束,至少7位并要求满足复杂性要求。务必勾选“用户下次登录时须更改密码”,免得管理员知道员工密码。
创建成功后会在右侧列表看到该用户,双击可查看属性。在“隶属于”标签页,可以看到该用户默认属于“Domain Users”组。有需要的话可以把用户加入“Domain Admins”组,但这是高危操作,只有确实需要管理员权限的人才给,绝不能人手一个域管理员。
5.2 客户端加入域的权限控制
默认情况下,域用户是有权力把一定数量的计算机加入域的,上限10台。如果一个普通员工自己就能向域中添加新电脑,管理不善时就会出现大量不受控的设备接入网络。我一般习惯在加域初期直接用域管理员来操作,等所有机入域完成后,在“Default Domain Controllers Policy”或者其他适当位置控制“DcSMB连接流量”等设置,或者直接调整加域限额。
如果你需要严格管理,可以在AD用户和计算机里的域属性中,找到“安全”选项卡,调整“创建计算机对象”权限,或者管理计算机计数器配额。日常批量场景,我用域管理员来加域,加完后恢复权限,而不是放开给所有人。
5.3 补充:批量创建用户的方式
少量用户点击创建就行,但如果是几十上百人的导入场景,推荐直接写个PowerShell脚本操作。例如:
New-ADUser -Name "zhangsan" -GivenName "san" -Surname "zhang" -SamAccountName "zhangsan" -UserPrincipalName "zhangsan@corp.local" -Path "OU=某研发部,DC=corp,DC=local" -AccountPassword (ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force) -Enabled $true -ChangePasswordAtLogon $true这一步可以用CSV文件配合批量脚本循环执行,效率能高一大截。但脚本脚本,关键是要确保OU路径书写准确,不然账号会跑到默认的Computers容器里去。
6. Windows 10客户端加入域的完整步骤
环境侧全部就绪,现在进入真正的重头戏:让Windows 10客户端加入域。
6.1 修改客户端的DNS指向
客户端之所以能够找到域控制器,完全依赖DNS解析。你需要到Windows 10的“网络适配器”里,把IPv4的DNS设置改为域控的IP地址。
操作路径:控制面板 -> 网络和共享中心 -> 更改适配器设置 -> 右键“以太网” -> 属性,选中“Internet协议版本4(TCP/IPv4)”,点击属性,然后选择“使用下面的DNS服务器地址”,填上192.168.16.10。备用DNS可以先留空,或者填第二台域控的IP,如果没有就填公共DNS,但要注意内部域名解析时的优先级问题。
顺带提醒一句:如果你在客户端IPv6上也配置了DNS,建议把域控的IP也填进去,或者直接禁用该网卡的IPv6,否则在某些网络环境下,系统会优先走IPv6 DNS导致解析失败。
改完后,用命令验证:
nslookup corp.local能正确解析出192.168.16.10,就说明客户端DNS已经生效。
6.2 使用系统属性界面加入域
Windows 10加域有多种入口,我都会试过,最稳定的是“系统属性”老入口。按Win+R输入sysdm.cpl回车,在“计算机名”标签页点击“更改”,在“隶属于”区域选择“域”,输入corp.local,点确定。
系统弹窗要求输入具有加入域权限的账号和密码,输入CORP\administrator,密码填域管理员密码。正常情况下会出现“欢迎加入域”的提示,并询问是否重启计算机,点击“立即重启”。
另一种常见入口是“设置 -> 账户 -> 访问工作或学校 -> 连接 -> 加入本地Active Directory域”。这个方式本质与系统属性相同,但在部分版本(尤其是教育版)中,按钮位置略有差异。如果你是给批量客户端部署,也可以通过配置应答文件自动加域,但平时单台操作就用系统属性最直接。
6.3 重启后用域账号登录
重启后,Windows 10登录界面会多出“其他用户”选项。点击它,用户名输入CORP\zhangsan,密码输入刚才创建的域用户密码,即可登录。首次登录时系统会为这个域账号在本机建立配置文件,可能要等几分钟,这与本机账户首次初始化是一样的道理。
登录成功后,可以通过“whoami”命令验证当前身份,正常会显示corp\zhangsan。再看一眼“系统信息”或者“设置->系统->关于”,计算机域信息会显示corp.local,说明这台机器顺利加入了域。
后续这台机器上的权限体系就交给域控统一管理了。域管理员可以通过组策略下发软件安装、限制USB口、统一桌面壁纸、设置屏保密码策略等等,不再需要一台台机器登录去设置。
7. 常见故障排查与避坑实操录
部署过程中遇到报错是家常便饭。下面这些是我处理过最多的问题,按出现频率排序,每个都给出现象和解决办法。
7.1 加域时提示“找不到网络路径”或“找不到域”
这种情况基本都是网络路径不通或者SYSVOL共享访问不到。先做三步排查:
- ping域控IP,看是否连通。
- 检查客户端防火墙,看是否开放了必要的端口。域控和客户端之间涉及很多端口,包括TCP 53(DNS)、88(Kerberos)、135(RPC)、139(NetBIOS)、389(LDAP)、445(SMB)、464(Kerberos密码修改)。如果企业内部防火墙策略较严,很可能把RPC相关端口给挡了。最简单的方式是在域控上临时关闭防火墙来测试,如果是这个问题再考虑精细放行端口。
- 用
nslookup -type=SRV _ldap._tcp.corp.local 192.168.16.10确认SRV记录能查询到,如果查询不到,回DNS管理器里看区域记录状态。
7.2 DNS指向错误引发的古怪故障
常见的错误是客户端的首选DNS虽然是域控IP,但备用DNS填了路由器或公网DNS。实际结果是,客户端可能时不时先查询备用DNS,导致解析内部域名超时或拿到错误结果。建议把首选和备用DNS都填域控IP,或者只保留一个首选DNS。
排查方法永远是先执行:
ipconfig /all看“DNS服务器”字段里是不是只有192.168.16.10。如果有多个且第一个不是域控,全改掉。
7.3 系统时间差超过5分钟导致认证失败
Kerberos认证对客户端和域控之间的时间差异要求极严,默认允许误差为5分钟。超过这个量级,客户端即使密码正确也会报“登录失败,目标账户名称不正确”或“发生未知的用户名或错误”。
解决办法是在域控上检查时间源,在客户端上开启与域控的时间同步:
w32tm /config /syncfromflags:domhier /update w32tm /resync重启后测试登录,问题大概率消失。惊讶的是这个问题至今仍在很多企业内网中出现,尤其是虚拟机环境,虚拟机的时钟漂移会让时间偏差特别快。
7.4 Windows 10家庭版无法加入域
这是“新手问题之王”。Windows 10家庭版(含家庭中文版)在系统属性里虽然能看到“更改”按钮,但点击后“域”选项是灰色不可选的,实际上压根不支持加入域。只有专业版、企业版和教育版具备完整的域加入能力。
处理办法:要么重装成专业版,要么升级授权。需要提醒的是,即使通过激活码把家庭中文版升级到专业版或企业版,过程也涉及系统功能变更,要提前备份数据。
7.5 加域成功后无法用域账号登录
现象:加入域成功并重启后,在登录界面输入CORP\zhangsan和正确密码,提示“没有服务器可处理登录请求”。
原因往往出在客户端无法通过DNS定位KDC服务。先确认DNS解析正常,再确认客户端时间同步没问题。还有一类情况:域控上创建用户时忘了勾选启用账号,导致账户被禁用。在ADUC里双击用户,查看“账户”选项,确认“账户已启用”是勾选状态。
7.6 DSRM密码忘记后的处置
如果DSRM密码忘了,不用重装系统,可以用ntdsutil重置:
ntdsutil set dsrm password reset password on server DC01按提示输入新密码即可。但你不能在普通登录状态下随手执行reset,这命令必须在域控的目录服务还原模式下运行。所以DSRM密码还是别忘的好,一折腾就是断片时间。
7.7 客户端无法浏览域内共享资源
加入域后,用域账号登录,但访问域内共享文件服务器时仍然提示拒绝访问。先确认共享权限和NTFS权限都正确,再确认客户端以域账号身份连接(本机管理员身份不受域策略管控)。文件服务器的共享设置里,可以尝试添加“ANONYMOUS LOGON”和“Everyone”到共享权限中,但更安全的做法是加入“Authenticated Users”组。
7.8 加域过程中常用命令速查
| 场景 | 命令 | 说明 |
|---|---|---|
| 查看客户端是否能解析域控 | nslookup corp.local | 观察返回IP |
| 查看域控SRV记录 | nslookup -type=SRV _ldap._tcp.corp.local | 应有DC记录 |
| DC整体健康检查 | dcdiag /v | 详细诊断 |
| 查看组策略应用结果 | gpresult /r | 在客户端执行 |
| 重置DSRM密码 | ntdsutil -> set dsrm password | 在域控上执行 |
| 强制时间同步 | w32tm /resync | 客户端执行 |
8. 域控搭建完成后日常管理要点
这篇文章到这儿,基础搭建流程已经全部走完。最后再聊几句我这几年的运维体会,做点从“能用”到“好用”的补充。
8.1 用组策略接管客户端配置
域控的核心价值不只是在登录时验证密码,更在集中策略控制。建议打开“组策略管理”控制台,在域上新建一个GPO,先做几个必备策略:
- 密码策略:密码最小长度至少为8位,复杂度要求启用。
- 账户锁定策略:5次错误后锁定10分钟,降低爆破风险。
- 屏保策略:无操作10分钟后强制屏保,恢复时必须登录。
- 桌面壁纸统一:通过“管理模板 -> 控制面板 -> 个性化”下发统一壁纸。
这些配置在客户端刷新后即生效,但组策略默认刷新周期要90分钟,想要立即生效可以在客户端执行gpupdate /force。
8.2 备份域控的三大核心件
到了后期运维,最怕AD数据库损坏。不管什么时候,都要记住以下三个核心:
- AD数据库文件(NTDS.dit)
- SYSVOL文件夹
- 系统状态备份
Windows Server自带的Windows Server Backup就可以做“系统状态”备份,它会把AD数据库、注册表、SYSVOL、引导文件一起备份。建议至少每周一次,备份到独立数据盘或者网络位置。
8.3 别随意改服务器名和IP
域控的计算机名和IP一旦确定,长期不要更改。改名会导致DNS和Kerberos主体别名失效,客户端重新加域是小事,严重时域内某些服务直接不可用。如果真需要调整,至少要把域控降级后再改,改完再提升回来,这套动作虽然可行,但耗时长且风险高。
8.4 考虑增加第二台域控
单域控在功能上是完整的,但风险也集中:一旦这台服务器宕机,整个域的认证和策略下发全部瘫掉。企业环境里我强烈建议至少部署两台域控,第二台加入现有域后,DNS和GC会自动复制,故障时还有一台冗余在线。这属于把基础架构做得扎实一点的常见做法,难度比第一台还要低。
最后分享一个我个人的操作习惯:在所有客户端都成功加入域、账号体系稳定运转之后,我通常会花半小时做一次完整验证——把所有管理工具打开,把每个OU的成员看一遍,把组策略结果集逐项核对,把备份任务真实跑通一次,确认“一切正常”。这些琐碎动作看似费时间,但恰恰是后期不出大问题的根本原因。基础设施这种东西,平时多照顾一点,它就不会在关键时候给你上眼药。