Windows AD PowerShell(十三):站点与服务

1994 字
10 分钟
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 查询所有站点#

Terminal window
# 列出林中的所有站点
Get-ADReplicationSite -Filter *
# 按 VM 实测数据整理的格式示例,不是该命令的实机直出
Name : QYNET-CORE
DistinguishedName : CN=QYNET-CORE,CN=Sites,CN=Configuration,DC=qy,DC=net

**VM 实测:**配置分区中只有 QYNET-CORE 一个站点。需要快速看 DC 分布在哪些站点时,可以结合第四节的域控查询:

Terminal window
Get-ADDomainController -Filter * |
Select-Object Name,Site,IsGlobalCatalog
# 这条命令本节未在 VM 上执行;具体输出以环境为准

这里的 Site 可与站点对象名称对照;IsGlobalCatalog 的含义见第四节:域控与 FSMO。本节没有核对 GC 状态。

13.3 查询站点链接#

Terminal window
# 查看所有站点链接,以及影响跨站点复制的几个字段
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 查询子网:本实验环境的关键发现#

Terminal window
# 查看 AD 已定义的所有子网,以及它们归属的站点
Get-ADReplicationSubnet -Filter * |
Select-Object Name,Site,Location
# VM 实测:没有子网对象,因此这条命令预期不会返回任何行

**VM 实测:**当前 AD 中 0 个子网对象。这不表示现在的单站点域已经无法登录;它表示目录中没有显式的“IP 网段 → 站点”映射。等以后增加第二个站点或异地 DC 时,客户端可能无法按网段准确识别自己所在的位置,从而连到不理想的 DC,表现为登录慢或跨站点流量异常。DC Locator 的实际结果还受 DNS、缓存、可达性和站点覆盖等因素影响,不能简单说成“必定随机选 DC”。

在客户端(例如 QYNET-USER01)上,先确认实际 IP、本站点和找到的 DC:

Terminal window
ipconfig /all
nltest /dsgetsite
nltest /dsgetdc:qy.net /force
# 输出格式示意;本节未在 USER01 上运行
# /dsgetsite 会返回客户端当前识别的站点;/dsgetdc 显示本次定位到的域控和站点信息

/force 是强制重新发现 DC,便于排查缓存影响,不是修改 AD 站点。若域控的系统日志持续出现 Netlogon 5807,可继续核对未映射客户端的 IP,确认是不是少了子网定义;同时检查网络掩码,不能把 192.168.254.10 这类单个 IP 直接猜成 /24 网段。

确定真实网段及站点归属后,可以先预演创建:

Terminal window
# 纯示例:网段和前缀长度必须先由实际网络配置确认;本节未执行
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 查询复制连接:注意方向#

Terminal window
# 查看全林的复制连接对象
Get-ADReplicationConnection -Filter * |
Select-Object Name,ReplicateFromDirectoryServer,ReplicateToDirectoryServer
# 按目录对象关系整理的格式示例;并非 PowerShell 实机直出
Name ReplicateFromDirectoryServer ReplicateToDirectoryServer
---- ---------------------------- --------------------------
aead53d7-7693-4059-ad79-28d24f96f6ef QYNET-CORE02 QYNET-CORE01
5e711951-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 的连接,应加过滤条件:

Terminal window
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。你先看什么?

建议按顺序确认:

  1. 在 USER01 上检查 IP、掩码与 DNS,并执行 nltest /dsgetsite、nltest /dsgetdc:qy.net /force。
  2. 用 Get-ADReplicationSubnet -Filter * 查该 IP 所属网段有没有映射、映射到了哪个站点。
  3. 用 Get-ADDomainController -Filter * | Select Name,Site 确认本地站点是否有可用 DC。
  4. 如果站点映射正确、仍定位到远处,再查 DNS 的站点专属 SRV 记录、域控可达性与 Netlogon 日志;需要时参考第七节:DNS 与 SPN和第六节:dcdiag 健康检查。

这道题的核心不是“见到慢就改站点链接成本”,而是先确认 客户端 IP → AD 子网 → 站点 → 可用 DC 这条链条。站点链接主要服务于跨站点复制拓扑;它不能代替客户端子网映射。

参考资料#


上一篇:Windows AD PowerShell(十二):磁盘与性能

下一篇:Windows AD PowerShell(十四):清理与维护

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
Windows AD PowerShell(十三):站点与服务
https://springtsuki.xucjno.com/posts/springtsuki/notes/windowsad/powershell/928-sites/
作者
SpringTsuki
发布于
2026-09-28
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
SpringTsuki
你好,我是浅月。
公告
浅月的开发小窝!欢迎你来到这里!
音乐
封面

音乐

暂未播放

0:000:00
暂无歌词
分类
标签
站点统计
文章
56
分类
9
标签
42
总字数
188,888
运行时长
0 天
最后活动
0 天前
站点信息
构建平台
GitHub Actions
博客版本
Firefly v6.13.5
文章许可
CC BY-NC-SA 4.0

文章目录