Windows域控部署与运维指南:从规划到排错

Windows域控部署与运维指南:从规划到排错 简介这是《第六章 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 找 DCIP 一变立刻失联首选 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_SKEWDC 时间偏差超过 5 分钟按 2.4 节执行w32tm /resync目录服务无法启动NTDS 数据库目录权限异常或磁盘满检查系统日志里 NTDS 事件并确认 C 盘剩余空间遇到报错时先看服务器管理器右上角旗标里的“部署操作结果”它给出的错误信息最直接。之后再去事件查看器的 Directory Service 日志里找对应编号。不要一边搜日志一边乱点勾选配置按 DNS、时间、磁盘、权限这四个方向收敛大部分安装问题都能落地。4. 域控日常管理批量用户、首选项与组策略排错4.1 批量创建域用户的可复用脚本新员工入职时几十个账号如果一个个在 AD 用户和计算机里点容易点出重复名或写错 OU。推荐用 CSV 配合New-ADUser批量创建。先准备一个 UTF-8 编码的 CSVname,sam,upn,ou,password 张三,zhangsan,zhangsanad.example.local,OU员工,DCad,DCexample,DClocal,Temp12345 李四,lisi,lisiad.example.local,OU员工,DCad,DCexample,DClocal,Temp12345然后执行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 CNRecycle Bin Feature,CNOptional Features,CNDirectory Service,CNWindows NT,CNServices,CNConfiguration,DCad,DCexample,DClocal -Scope ForestOrConfigurationSet -Target ad.example.local -Confirm:$false说明回收站在林级别启用执行一次对整个林生效启用后不能关闭。恢复误删用户Get-ADObject -Filter { ObjectClass -eq user } -IncludeDeletedObjects -SearchBase CNDeleted Objects,DCad,DCexample,DClocal | Restore-ADObject恢复后的用户密码会被清空域管理员需要重新为其设置临时密码。组关系大部分会保留但最好复核一遍主要成员身份。5.3 从 Windows 安全日志中挖掘异常登录域控上的安全日志是排查“谁在试密码”的第一现场。四组事件 ID 最值得看事件 ID含义需要警惕的场景4740账户被锁定同一时间段内多台机器反复尝试4771Kerberos 预认证失败密码被暴力尝试4768Kerberos TGT 请求成功凌晨时段的异常请求4724密码重置尝试非管理人员执行重置操作查询最近 20 条锁定事件Get-WinEvent -FilterHashtable {LogNameSecurity; ID4740} -MaxEvents 20 | Select-Object TimeCreated, Message | Format-List这一步配合Get-WinEvent的 XML 过滤可以找到锁定事件里的调用方计算机名。Windows 安全日志默认记录这些事件但不代表所有域控都开了详细审核确认当前策略里至少启用了“用户账户管理”的成功和失败审计。接收生产环境时把这三件事做完基本能避免大多数低级事故造成的被动加班。本文还有配套的精品资源点击获取