简介:这是《第六章 Windows域管理》的DOC格式学习资料,面向网络工程专业学生、系统管理员及备考Windows服务器认证的读者。文档以企业网络中的域管理为主线,系统讲解域与工作组的区别、域控制器(DC)角色、活动目录(AD)的逻辑结构(域树、森林、OU),并逐项介绍DHCP、DNS的部署配置、用户账户管理、计算机加入域、SAM数据库与Syskey安全机制,以及组策略的编辑与应用方法,帮助读者从概念理解走向实际部署。资源包共1个DOC文件,大小3.03MB,内容为完整的章节讲义与实验说明,适合配合虚拟机环境边看边练,也可作为课堂笔记或考前复习提纲。目前已有122人学习浏览,对想理清Windows域管理体系中各组件关系、掌握集中化安全管理方法的初学者尤为适用。
1. 域管理在 Windows 网络里到底解决什么问题
域控服务器是那种“开机时没人觉得它存在,关机后全公司都没法登录”的机器。Windows 域管理的本质,是把散落在每台电脑上的本地账号收编到一个集中身份库里,让登录、权限、网络驱动器甚至桌面壁纸都跟着“域账号”走,而不是跟着某个人的电脑走。很多运维接手公司网络时,第一件要搞清楚的事就是这台域控是什么角色、装了哪些功能、域林是什么结构。企业规模一大,域管理基本是必选项:几千个账号靠本地账户管理,费人力不说,离职的人曾经用过的电脑还留着它的账号。这篇博文从部署域控前的规划讲起,一路写到安装、批量建号、组策略下发和排错,用的都是 Windows Server 上最常见、最稳的方案,适合正在筹备建域,或者刚接手一台来历不明域控的同行。
2. 部署 Windows 域控前必须定的 6 个规划项
2.1 硬件选型:域控对 CPU 不敏感,但对磁盘很挑剔
被问得最多的问题是“几核几 G 能当域控”。域控这个角色对 CPU 的压力比想象中小,Active Directory 内部基于 ESE 数据库,常访问的对象会被缓存到内存里,日常操作以读为主,写操作只在密码修改、对象增删这些场景才产生。常见经验值:500 用户以内的域,2 核 4GB 内存加一块 SSD 就够用;2000 用户以上再考虑 4 核 8GB 起步,并把 AD 数据库和日志分开存放。
真正容易出问题的其实是磁盘。域控数据库 ntds.dit、事务日志、系统页文件如果都挤在同一块慢速机械盘上,开机、登录、组策略应用都会明显变慢。虚拟化环境里如果这块虚拟机磁盘是普通 HDD 且没有缓存策略,你会在排障时发现 CPU 和内存都很闲,但域控就是“反应迟钝”。所以我的建议是:磁盘选 SSD,数据库路径和日志路径分开规划。
第二台域控不该是“以后再说”的选项。生产环境至少要有两台,而且两台都启用全局编录。这样任何一台挂了,认证和查询都不中断。域管理里最常见的事故不是“域角色坏了”,而是“只有一台 DC,它起不来了”。这个问题一旦发生,所有依赖域认证的机器全部瘫痪。
2.2 域名规划:用 .local 还是公网子域
选 Active Directory 域名的本质,是给身份命名空间定一个根。老教程里常见 ad.test.local、corp.local 这类内部域名。好处是不和公网冲突,部署时几乎不用考虑公网解析。但 .local 是保留段,没法签发公网证书,将来要做 ADFS、Exchange 客户端访问、802.1X 证书认证,都会卡在证书校验上。
我一般建议用公司真实拥有的公网域名下的子域,比如 ad.example.com。这个域名不暴露到公网解析,内网 DNS 自己管就行。注意别把 AD 域直接做成 example.com,否则公网 A 记录和 AD 内部 DNS 区域会互相干扰,邮件、外网访问都可能出问题。如果只能选 .local,功能上也能跑,只是将来接触证书类项目时要接受可能要改架构的代价。
2.3 部署域控前必须满足的 6 个前置条件
| 条件 | 要求 | 为什么卡 |
|---|---|---|
| 静态 IP | 手动指定并固定 | 域内其他机器靠 DNS 找 DC,IP 一变立刻失联 |
| 首选 DNS | 部署第一台时指向本机 | DC 必须能注册 SRV 记录才能被其他机器发现 |
| 主机名 | 预先规划,避免 WIN-XXXX 随机名 | 主机名进入 DNS,临时名太难看也不方便排障 |
| 时间同步 | 偏差不能超过 5 分钟 | Kerberos 认证对时钟偏移非常敏感 |
| 系统版本 | Windows Server 2016 及以上 | 功能性级别太低,后续升级组策略和功能受限 |
| 备用凭证 | 准备本机管理员密码和 DSRM 密码 | 提升过程必须填,DSRM 忘掉后续恢复很麻烦 |
这里把“首选 DNS 指向本机”放在待办里,很多人会误认为要先独立装好 DNS 服务再建域。不用。新建域控的提升向导会自动给网卡配置 DNS,你只需要在开始前把 IP 地址和 DNS 填好就行。
2.4 时间同步是域管理里最容易被低估的定时炸弹
域内机器默认每 15 分钟从域控同步一次时间。一旦偏移超过 5 分钟,Kerberos 直接拒绝认证,表现就是你输入了完全正确的账号密码,依然登录不上,或者访问共享报权限错误。这类问题最坑的地方在于:你查密码、查权限、查网络,都查不出毛病。
先看当前时间状态:
# 查看当前时间同步状态和来源 w32tm /query /status w32tm /query /source # 手动触发一次重新同步 w32tm /resync/source输出的结果很关键。如果显示VMIC Time Provider或Local CMOS,说明这台机器用的是宿主机时间或本地 CMOS,稳定性没法保证。第一台域控建议直接手动配置一个可靠的外部时间源:
w32tm /config /manualpeerlist:"time.windows.com,0x1" /syncfromflags:manual /update Restart-Service w32time参数说明:0x1表示用特殊模式向对端请求时间;/syncfromflags:manual指定不从域中自动获取时间源,而是用刚才手动指定的列表。配置生效后,域内其他机器仍然自动向 PDC 模拟器同步,不用逐个改。
3. 用 AD DS 角色在 Windows Server 上装出第一台域控
3.1 安装 AD DS 角色:图形界面与 PowerShell 两条路
图形界面路径是:服务器管理器 → 添加角色和功能 → 基于角色或基于功能的安装 → 从服务器池中选择当前机器 → 勾选“Active Directory 域服务”→ 一路放行完成。装完后工具栏会出现一枚小旗标,提示“将此服务器提升为域控制器”,先不要点,提升前需要再把网卡 DNS 确认一遍。
命令行方式更直接,一条命令装完:
# 以管理员身份运行 PowerShell # 安装 AD DS 角色,同时带上远程服务器管理工具 Install-WindowsFeature AD-Domain-Services -IncludeManagementTools-IncludeManagementTools很重要。少了它,AD 用户和计算机、AD 管理中心这些管理工具不会安装,你后面建用户、看属性都会不方便。角色安装完成后,继续用提升向导。
3.2 将服务器提升为域控制器
如果这是整个公司的第一台 DC,使用Install-ADDSForest而不是Install-ADDSDomainController。前者创建新林,后者加入现有林。
Import-Module ADDSDeployment Install-ADDSForest ` -DomainName "ad.example.local" ` -DomainNetbiosName "EXAMPLE" ` -ForestMode "WinThreshold" ` -DomainMode "WinThreshold" ` -InstallDns:$true ` -SafeModeAdministratorPassword (ConvertTo-SecureString "YourDSRMPassword123!" -AsPlainText -Force) ` -Force:$true参数说明:-DomainName是域的完整名称,和 2.2 节规划的一致;-DomainNetbiosName是 NetBIOS 名称,尽量短且有辨识度;-ForestMode和-DomainMode的WinThreshold对应 Windows Server 2016 之后的功能级别;-InstallDns:$true会在提升的同时安装 DNS 服务并自动把网卡 DNS 指向自己;-SafeModeAdministratorPassword是 DSRM 恢复密码,务必留存。
执行过程需要几分钟,期间会重启系统。远程桌面连接会在重启瞬间断开,属于正常现象,稍等后重新连接就行。
3.3 验证域控的 DNS 解析与 SRV 记录
域控在 DNS 里注册的 SRV 记录,是客户端能找到它的依据。很多“找不到域”“域不存在”的问题,本质上都是 SRV 记录没注册成功。验证命令:
# 让域内的发现机制返回当前可用的域控 Get-ADDomainController -Discover # 手动查询 LDAP SRV 记录 Resolve-DnsName -Type SRV _ldap._tcp.dc._msdcs.ad.example.localGet-ADDomainController -Discover返回结果里能看到域控名称和 IP 地址;Resolve-DnsName会列出对应的主机记录。如果提示找不到,去 DNS 管理器的正向查找区看_msdcs节点,确认这台 DC 的 A 记录是否存在。有时候提升成功但注册有延迟,重启 NetLogon 服务就能强制重新注册:
Restart-Service Netlogon这个操作不破坏任何已有配置,是域管理里常用的“轻量级自愈”手段。
3.4 域控安装最常见的 4 个报错怎么查
| 现象 | 常见原因 | 处理优先级 |
|---|---|---|
| 提升时报“DNS 解析失败” | 首选 DNS 没有指向本机或目标 DC | 检查网卡 TCP/IP 设置,改完重跑 |
| 提升完成但客户端找不到域 | Netlogon 注册 SRV 太慢 | Restart-Service Netlogon,五分钟后再测 |
| 登录时报 KDC_ERR_SKEW | DC 时间偏差超过 5 分钟 | 按 2.4 节执行w32tm /resync |
| 目录服务无法启动 | NTDS 数据库目录权限异常或磁盘满 | 检查系统日志里 NTDS 事件,并确认 C 盘剩余空间 |
遇到报错时,先看服务器管理器右上角旗标里的“部署操作结果”,它给出的错误信息最直接。之后再去事件查看器的 Directory Service 日志里找对应编号。不要一边搜日志一边乱点勾选配置,按 DNS、时间、磁盘、权限这四个方向收敛,大部分安装问题都能落地。
4. 域控日常管理:批量用户、首选项与组策略排错
4.1 批量创建域用户的可复用脚本
新员工入职时,几十个账号如果一个个在 AD 用户和计算机里点,容易点出重复名或写错 OU。推荐用 CSV 配合New-ADUser批量创建。先准备一个 UTF-8 编码的 CSV:
name,sam,upn,ou,password 张三,zhangsan,zhangsan@ad.example.local,"OU=员工,DC=ad,DC=example,DC=local",Temp@12345 李四,lisi,lisi@ad.example.local,"OU=员工,DC=ad,DC=example,DC=local",Temp@12345然后执行:
Import-Csv -Path C:\users.csv -Encoding UTF8 | ForEach-Object { New-ADUser ` -Name $_.name ` -SamAccountName $_.sam ` -UserPrincipalName $_.upn ` -Path $_.ou ` -AccountPassword (ConvertTo-SecureString $_.password -AsPlainText -Force) ` -ChangePasswordAtLogon $true ` -Enabled $true ` -PassThru }参数说明:-ChangePasswordAtLogon $true强制新用户首次登录改密码;-PassThru让命令把创建成功的用户对象打印出来,方便确认;UPN 后缀必须和域一致,否则客户端登录时输入账号会报错。中文名批量导入时,-Encoding UTF8是必须的,否则会出现乱码显示名。生产的密码不要直接写在 CSV 里明文流转,这里只是演示语法,实际场景建议对接 HR 系统的临时密码流程。
4.2 用组策略首选项下发网络驱动器映射
新员工电脑要挂公司共享盘,一条条 net use 命令写脚本也能做,但改起来不灵活。更常见做法是在 GPO 的“首选项”里做驱动器映射。
操作路径:打开组策略管理控制台 GPMC → 在域节点建一条新 GPO,命名 N-Drive-Mapping → 右键编辑 → 展开“用户配置 → 首选项 → Windows 设置 → 驱动器映射” → 新建 → 映射驱动器。关键设置是“操作”要选“更新”,位置填共享路径,如\\dc01\公共盘,勾选“重新连接”。
“创建 / 更新 / 替换”三者的区别:
| 动作 | 行为 | 适用场景 |
|---|---|---|
| 创建 | 只在不存在时创建,已存在就跳过 | 一次性初始化 |
| 更新 | 已存在则修正属性,不存在则创建 | 日常配置下发 |
| 替换 | 先删后建,可能中断正在访问的盘 | 盘符和路径大调整 |
弄完记得改“安全筛选”。默认情况下 GPO 应用给 Authenticated Users,也就是所有域账号。实际操作中建议删掉它,改加“文件访问组”这样的安全组,让 GPO 只影响目标人群。客户端执行gpupdate /force后,刷新组策略即可看到盘符。
4.3 组策略不生效的 3 个排查命令
组策略生效的链路是:计算机启动/用户登录 → 找到 DC → 抓取 GPO → 检查 OU 和筛选 → 应用。链路里任何一环断了,都会出现“明明设置了却不生效”。
# 查看当前用户最终生效的 GPO gpresult /r /scope:user # 生成 HTML 报告,方便发给其他人排查 gpresult /h C:\gpo-report.html /f # 列出所有启用的 GPO,看是否被误禁用 Get-GPO -All | Where-Object { $_.GpoStatus -ne "AllSettingsDisabled" } | Select-Object DisplayName, GpoStatus, WmiFiltergpresult /r是最先要看的信息,它会明确显示哪条 GPO 被应用了、来自哪个 OU。如果里面没有你的策略,检查三项:客户端电脑是否在策略链接的 OU 下、安全筛选是否包含目标账号、GPO 是否处于启用状态。如果策略已应用但盘符不出现,重点检查“首选项”里的“目标”条件,比如是否错误加了 IP 范围或操作系统限制。按这个顺序从结果反推,比在客户端反复重启再试要快得多。
5. 域控交接与应急的 3 个硬功夫
5.1 五分钟跑完域控健康检查
新接手一台域控,别急着改配置。先把整套健康检查跑一遍:
# 只输出失败的测试项 dcdiag /q # 专门看复制状态 dcdiag /test:replications /vdcdiag /q会过滤掉通过的项目,只保留失败提示,快速定位有没有致命问题;/test:replications验证多台 DC 之间的 AD 复制。复制失败时优先检查 DNS 区域里的分区记录是否完整,再对比两台 DC 的 SYSVOL 复制状态。出现 NETLOGON 共享无法访问的情况,多半是 DFSR 的 SYSVOL 复制出问题,而不是 SMB 权限。
5.2 开启 AD 回收站,防止误删用户后翻墓碑
Windows Server 2016 开始的 Active Directory 回收站默认为关闭状态。开启后,误删用户可以直接从“已删除对象”容器里恢复,不需要去翻墓碑记录,恢复过程在图形界面或命令行都可以完成。开启命令:
Enable-ADOptionalFeature ` -Identity "CN=Recycle Bin Feature,CN=Optional Features,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=ad,DC=example,DC=local" ` -Scope ForestOrConfigurationSet ` -Target "ad.example.local" ` -Confirm:$false说明:回收站在林级别启用,执行一次对整个林生效,启用后不能关闭。恢复误删用户:
Get-ADObject -Filter { ObjectClass -eq 'user' } -IncludeDeletedObjects ` -SearchBase "CN=Deleted Objects,DC=ad,DC=example,DC=local" | Restore-ADObject恢复后的用户密码会被清空,域管理员需要重新为其设置临时密码。组关系大部分会保留,但最好复核一遍主要成员身份。
5.3 从 Windows 安全日志中挖掘异常登录
域控上的安全日志是排查“谁在试密码”的第一现场。四组事件 ID 最值得看:
| 事件 ID | 含义 | 需要警惕的场景 |
|---|---|---|
| 4740 | 账户被锁定 | 同一时间段内多台机器反复尝试 |
| 4771 | Kerberos 预认证失败 | 密码被暴力尝试 |
| 4768 | Kerberos TGT 请求成功 | 凌晨时段的异常请求 |
| 4724 | 密码重置尝试 | 非管理人员执行重置操作 |
查询最近 20 条锁定事件:
Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4740} -MaxEvents 20 | Select-Object TimeCreated, Message | Format-List这一步配合Get-WinEvent的 XML 过滤,可以找到锁定事件里的调用方计算机名。Windows 安全日志默认记录这些事件,但不代表所有域控都开了详细审核,确认当前策略里至少启用了“用户账户管理”的成功和失败审计。接收生产环境时把这三件事做完,基本能避免大多数低级事故造成的被动加班。
本文还有配套的精品资源,点击获取