最准确、开销最低的监控方式是直接用Get-Counter读取NTDS\LDAP Searches/sec计数器,它反映域控每秒实际完成的LDAP search操作数量,比日志解析或客户端采样更贴近服务层真实吞吐。
直接用 get-counter 读取 ntds\ldap searches/sec 计数器,这是最准确、开销最低的监控方式。它反映域控每秒实际完成的 ldap search 操作数量,比日志解析或客户端采样更贴近服务层真实吞吐。
获取实时值并验证有效性
在域控本机或有性能监控权限的管理机上运行:
-
Get-Counter "\NTDS\LDAP Searches/sec" -SampleInterval 1 -MaxSamples 3—— 查看最近3秒的瞬时速率,确认计数器是否活跃 - 若返回
0持续超过10秒,且用户端搜索正常,需检查:Performance Logs and Alerts 防火墙规则是否启用、当前用户是否具备 Performance Monitor Users 组权限 - 远程采集加
-ComputerName "DC01",但必须提前在目标域控开启 Windows Firewall 中的 Performance Logs and Alerts (TCP-In) 规则
区分真实业务流量与干扰噪声
单纯数值高不等于异常,关键看趋势和上下文:
- 工作时间突增至 80–120/sec 属常见(如组策略刷新、登录脚本执行),但若凌晨仍稳定在 50+/sec,需排查是否有应用未关闭连接、定时同步任务未限流
- 配合
NTDS\LDAP Client Sessions一起看:若 sessions 长期 >150 且 searches/sec 波动剧烈,大概率是客户端未复用连接,造成大量短连接 search 请求 - 避免误判:PowerShell 的
Get-ADUser -Filter *或dsquery user -limit 0这类无范围限制操作会触发单次全库扫描,只计为 1 次 search,但耗时数秒——此时NTDS\DS Search Time (msec)才是关键指标
设置实用预警逻辑
固定阈值容易误报,推荐基于滑动窗口做动态判断:
- 每5分钟采集一次,取过去30分钟的中位数作为基线;当前值 > 基线 × 3 且持续2个周期,才触发告警
- 告警正文中嵌入快速诊断命令,例如:
运行repadmin /showconn DC01查看是否有异常连接源;
运行Get-Counter "\NTDS\DRA Inbound Bytes Total" -ComputerName DC01确认复制是否卡住(卡住时 search 流量常被误导向) - 不要单独监控该计数器——它必须和
NTDS\LDAP Bind Time、NTDS\DS Threads In Use联动分析。三者同步飙升,说明是服务层瓶颈;仅Searches/sec单独高而 bind time 正常,多为客户端行为问题

















