ntds性能计数器损坏或丢失导致performance monitor中无ad指标,需从注册表(检查hkey_local_machine\software\microsoft\windows nt\currentversion\perflib\009下ntds相关值)、wmi及性能日志服务状态、系统文件与ad数据库完整性、域功能级别及补丁兼容性四方面排查。
ntds 性能计数器损坏或丢失会导致性能监视器(performance monitor)中看不到 active directory 相关指标,如“ldap bind time”“ds search time”“dra inbound bytes/sec”等,进而影响复制健康度、登录延迟等问题的诊断。这类故障通常不报错,但计数器列表为空或显示“无数据”,需从注册表、服务状态和系统完整性三方面入手排查。
检查 NTDS 计数器是否已注册
Windows Server 的性能计数器由注册表项定义,NTDS 计数器对应注册表路径:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009
其中,“009”代表英文语言环境(LCID=1033),若服务器使用其他区域设置,需核对对应 LCID 子键。
- 打开 regedit,定位到上述路径,查找是否存在以 NTDS 开头的值名(如 NTDS、NTDS DRA、NTDS LDAP 等)
- 若缺失,说明计数器未正确安装;可尝试运行命令重建:
lodctr /R(重载所有计数器定义)
或针对 AD 单独注册:
lodctr /T:NTDS - 执行后重启 Windows Management Instrumentation (WMI) 和 Performance Logs and Alerts 服务
验证 WMI 和性能日志服务状态
NTDS 计数器依赖 WMI 提供数据源,若 WMI 损坏或性能日志服务未运行,计数器即使存在也无法采集。
- 运行 services.msc,确认以下服务状态为“正在运行”:
— Windows Management Instrumentation
— Performance Logs & Alerts
— Remote Procedure Call (RPC) - 若 WMI 异常,可用命令修复:
winmgmt /verifyrepository(检查仓库完整性)
winmgmt /salvagerepository(尝试修复)
winmgmt /resetrepository(最后手段,会重置 WMI 数据库) - 执行后建议重启服务器,再打开性能监视器验证 NTDS 计数器是否出现
排除系统文件与 AD 数据库异常
严重系统文件损坏或 NTDS.DIT 文件异常也可能导致计数器加载失败,尤其在近期执行过非标准操作(如强制卸载角色、手动修改注册表、磁盘错误后恢复)之后。
- 运行系统文件检查:
sfc /scannow,完成后重启 - 检查目录服务事件日志(Event Viewer → Directory Service)是否有 ID 1000、1168、1912 等与性能计数器初始化相关的错误
- 若怀疑 NTDS.DIT 损坏,可在 DSRM 下运行:
esentutl /g %systemroot%\ntds\ntds.dit(校验数据库完整性)
如发现错误,需结合备份进行权威还原或使用 esentutl /p 修复(仅限无备份且可接受数据丢失风险时)
确认域功能级别与补丁兼容性
某些旧版 Windows Server(如 2008 R2 SP1 前)或未安装关键更新时,NTDS 计数器可能因权限或注册逻辑缺陷无法加载。
- 运行 Get-ADDomain | fl DomainMode(PowerShell)确认域功能级别 ≥ Windows Server 2008 R2
- 检查是否安装了 KB4552112、KB5004237 等与性能计数器稳定性相关的累积更新
- 若为虚拟化环境,确认 Hyper-V 集成服务或 VMware Tools 已更新,避免底层驱动干扰 WMI 枚举











