Windows AD PowerShell(十三):站点与服务
这是 Windows AD PowerShell 学习记录的第十三节。这里的“服务”指 Active Directory 站点与服务,重点不是查看 Windows 服务是否启动,而是理解客户端如何定位域控、域控之间如何建立复制拓扑。
数据来源说明:2026 年 9 月 28 日通过已有的 ldap3 环境对实验域
qy.net做了只读查询,确认站点、站点链接、子网及复制连接对象。下文的“VM 实测”来自目录查询;代码块中的 PowerShell 输出如果出现,均标为按实测数据整理的格式示例,并非这些 PowerShell 命令已在 VM 控制台逐条执行。本节没有修改站点拓扑。
十三、站点与服务
13.1 先分清四类对象
| 对象 | 作用 | 排查时常问的问题 |
|---|---|---|
| 站点(Site) | 表示网络拓扑中连接较好的位置 | 客户端和 DC 被归到哪个站点? |
| 子网(Subnet) | 把 IP 网段映射到站点 | 客户端 IP 有对应网段吗? |
| 站点链接(Site Link) | 告诉 AD 不同站点如何互连、成本和复制频率 | 跨站点复制路径如何选? |
| 复制连接(Connection) | 指定某台 DC 从哪台 DC 入站复制 | 这台 DC 的复制源是谁? |
**站点链接不是复制连接。**前者描述站点间的逻辑路径,后者是具体 DC 的单向入站连接对象。KCC(知识一致性检查器)通常会自动创建和维护复制连接;查到连接对象也不等于最近一次复制成功,复制健康还得看第五节:复制健康。
13.2 查询所有站点
# 列出林中的所有站点Get-ADReplicationSite -Filter *
# 按 VM 实测数据整理的格式示例,不是该命令的实机直出Name : QYNET-COREDistinguishedName : CN=QYNET-CORE,CN=Sites,CN=Configuration,DC=qy,DC=net**VM 实测:**配置分区中只有 QYNET-CORE 一个站点。需要快速看 DC 分布在哪些站点时,可以结合第四节的域控查询:
Get-ADDomainController -Filter * | Select-Object Name,Site,IsGlobalCatalog
# 这条命令本节未在 VM 上执行;具体输出以环境为准这里的 Site 可与站点对象名称对照;IsGlobalCatalog 的含义见第四节:域控与 FSMO。本节没有核对 GC 状态。
13.3 查询站点链接
# 查看所有站点链接,以及影响跨站点复制的几个字段Get-ADReplicationSiteLink -Filter * | Select-Object Name,Cost,ReplicationFrequencyInMinutes,SitesIncluded
# 按 VM 实测属性整理的格式示例;SitesIncluded 的实际显示形式可能不同Name Cost ReplicationFrequencyInMinutes SitesIncluded---- ---- ----------------------------- -------------DEFAULTIPSITELINK 100 180 {QYNET-CORE}VM 实测:仅有 DEFAULTIPSITELINK,Cost=100、replInterval=180 分钟,当前仅列出 QYNET-CORE 一个站点。因此不能根据“180 分钟”推断 CORE01 与 CORE02 的同站点复制要等三小时;这个属性用于跨站点链接的复制频率。单站点实验环境目前也没有跨站点链路可供观察。
Cost 是路径选择的相对代价,通常较低的路径优先;它不是网络延迟的实测毫秒数。ReplicationFrequencyInMinutes 也应与链接可用时间和实际网络状况一起看,不能孤立地当成“每封变更必定在该分钟数内到达”。
如果未来建了分支站点,修改成本或频率会影响复制拓扑和链路流量,应先评估带宽、时延与业务要求,再在维护窗口操作。本站点只有一个时,没必要为了练习而改默认链接。
13.4 查询子网:本实验环境的关键发现
# 查看 AD 已定义的所有子网,以及它们归属的站点Get-ADReplicationSubnet -Filter * | Select-Object Name,Site,Location
# VM 实测:没有子网对象,因此这条命令预期不会返回任何行**VM 实测:**当前 AD 中 0 个子网对象。这不表示现在的单站点域已经无法登录;它表示目录中没有显式的“IP 网段 → 站点”映射。等以后增加第二个站点或异地 DC 时,客户端可能无法按网段准确识别自己所在的位置,从而连到不理想的 DC,表现为登录慢或跨站点流量异常。DC Locator 的实际结果还受 DNS、缓存、可达性和站点覆盖等因素影响,不能简单说成“必定随机选 DC”。
在客户端(例如 QYNET-USER01)上,先确认实际 IP、本站点和找到的 DC:
ipconfig /allnltest /dsgetsitenltest /dsgetdc:qy.net /force
# 输出格式示意;本节未在 USER01 上运行# /dsgetsite 会返回客户端当前识别的站点;/dsgetdc 显示本次定位到的域控和站点信息/force 是强制重新发现 DC,便于排查缓存影响,不是修改 AD 站点。若域控的系统日志持续出现 Netlogon 5807,可继续核对未映射客户端的 IP,确认是不是少了子网定义;同时检查网络掩码,不能把 192.168.254.10 这类单个 IP 直接猜成 /24 网段。
确定真实网段及站点归属后,可以先预演创建:
# 纯示例:网段和前缀长度必须先由实际网络配置确认;本节未执行New-ADReplicationSubnet -Name '192.168.254.0/24' -Site 'QYNET-CORE' -WhatIf
# 格式示例:WhatIf 只预演,不创建对象What if: Performing the operation "New" on target "CN=192.168.254.0/24,CN=Subnets,CN=Sites,CN=Configuration,DC=qy,DC=net".这里的 192.168.254.0/24 只是根据当前 DC IP 写出的教学占位示例,不代表已确认的真实网段。正式创建前必须向网络配置核实 IP、掩码、VLAN 和站点归属;如有多个地点的网络,不应一股脑全部映射到同一站点。
13.5 查询复制连接:注意方向
# 查看全林的复制连接对象Get-ADReplicationConnection -Filter * | Select-Object Name,ReplicateFromDirectoryServer,ReplicateToDirectoryServer
# 按目录对象关系整理的格式示例;并非 PowerShell 实机直出Name ReplicateFromDirectoryServer ReplicateToDirectoryServer---- ---------------------------- --------------------------aead53d7-7693-4059-ad79-28d24f96f6ef QYNET-CORE02 QYNET-CORE015e711951-8cc1-4509-baf0-1dc8dd882474 QYNET-CORE01 QYNET-CORE02**VM 实测:**配置分区中有两条启用的 nTDSConnection:一条位于 QYNET-CORE01 的 NTDS Settings 下,源指向 QYNET-CORE02;另一条位于 QYNET-CORE02 下,源指向 QYNET-CORE01。记住:连接对象放在目标 DC 下,表示目标从来源 DC 拉取数据。同一对 DC 的双向复制可以对应两条不同方向的入站连接。
原大纲里“查某台 DC 的复制连接”若只运行 Get-ADReplicationConnection -Filter *,实际上会列出所有连接。只看进入 QYNET-CORE01 的连接,应加过滤条件:
Get-ADReplicationConnection -Filter "ReplicateToDirectoryServer -eq 'QYNET-CORE01'" | Select-Object Name,ReplicateFromDirectoryServer,ReplicateToDirectoryServer
# 按 VM 目录对象关系整理的格式示例Name ReplicateFromDirectoryServer ReplicateToDirectoryServer---- ---------------------------- --------------------------aead53d7-7693-4059-ad79-28d24f96f6ef QYNET-CORE02 QYNET-CORE01但“有连接”只说明拓扑中有这条路。真正关心最近一次有没有成功复制、失败码是什么,用 repadmin /showrepl QYNET-CORE01,具体排查见第五节:复制健康。
13.6 一道小排障题
以后公司新建一个异地站点,用户反馈登录明显变慢,发现 USER01 经常定位到异地 DC。你先看什么?
建议按顺序确认:
- 在 USER01 上检查 IP、掩码与 DNS,并执行
nltest /dsgetsite、nltest /dsgetdc:qy.net /force。 - 用
Get-ADReplicationSubnet -Filter *查该 IP 所属网段有没有映射、映射到了哪个站点。 - 用
Get-ADDomainController -Filter * | Select Name,Site确认本地站点是否有可用 DC。 - 如果站点映射正确、仍定位到远处,再查 DNS 的站点专属 SRV 记录、域控可达性与 Netlogon 日志;需要时参考第七节:DNS 与 SPN和第六节:dcdiag 健康检查。
这道题的核心不是“见到慢就改站点链接成本”,而是先确认 客户端 IP → AD 子网 → 站点 → 可用 DC 这条链条。站点链接主要服务于跨站点复制拓扑;它不能代替客户端子网映射。
参考资料
- Microsoft Learn:AD 站点功能与客户端定位
- Microsoft Learn:域控制器定位过程
- Microsoft Learn:复制拓扑与连接对象
- Microsoft Learn:查询站点链接
- Microsoft Learn:查询子网
- Microsoft Learn:查询复制连接
支持与分享
如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!













