要让远程windows主机支持wmi性能数据采集,关键是打通访问链路并赋予对应权限:确保wmi服务与dcom启用、开放rpc端口135及动态端口49152–65535、配置rootcimv2命名空间的远程启用与读取权限,并选用win32_perfformatteddata类获取已格式化性能数据。
要让远程 windows 主机支持 wmi 性能数据采集,关键不是“配置参数”,而是打通访问链路并赋予对应权限。wmi 本身不提供可调的“收集参数开关”,它依赖底层服务、网络通路和安全策略是否就绪。真正需要配置的是环境与权限。
确保 WMI 服务与 DCOM 正常启用
目标主机必须运行 WMI 服务(Winmgmt,默认自动启动),且 DCOM 配置允许远程激活。可通过以下方式验证和启用:
- 在目标机上运行 services.msc,确认 “Windows Management Instrumentation” 服务状态为“正在运行”
- 打开“组件服务” → “计算机” → “我的电脑” → 右键 → “属性” → “DCOM 配置”标签页 → 勾选“启用分布式 COM”
- 若使用域环境,建议统一通过组策略部署:启用“计算机配置 → 管理模板 → Windows 组件 → DCOM 配置 → 启用分布式 COM”
开放必要网络端口与防火墙规则
WMI 远程调用依赖 RPC(端口 135)及后续动态分配的端口(通常为 49152–65535)。不能只开 135,否则连接会卡在“已连接但无响应”:
- 在目标主机防火墙中,启用预定义规则:“Windows Management Instrumentation (WMI)”(含入站/出站)
- 或手动添加规则:允许 TCP 端口 135,以及 TCP/UDP 范围 49152–65535(适用于 Windows Server 2008+)
- 测试连通性:本地执行 Test-WsMan -ComputerName
,成功返回 XML 即表示基础通道畅通
配置 WMI 命名空间权限(核心步骤)
默认情况下,普通用户甚至域用户都无权远程读取性能类(如 Win32_PerfFormattedData_*)。需显式授权:
- 运行 wmic /namespace:\rootcimv2 path __SystemClass 测试基础命名空间访问
- 打开“计算机管理” → “服务和应用程序” → “WMI 控制” → 右键“WMI 控制(本地)” → “属性” → “安全性”标签页
- 展开 rootcimv2 → 点击“安全” → 添加监控账户(如 domainmonitoruser)→ 勾选“启用账户”、“远程启用”、“读取”三项
- 如需获取实时性能计数器(如 CPU 使用率),还需对 rootcimv2pplicationsmicrosoftiisv2 或 rootcimv2perfmon(旧版)单独授权
选择合适的数据类与查询方式
不同用途应选用不同 WMI 类,避免误用导致空结果或高开销:
- CPU 使用率:优先用 Win32_PerfFormattedData_PerfOS_Processor(已格式化,直接返回百分比),而非 Win32_Processor 的 LoadPercentage(部分系统不填充)
- 内存使用:推荐 Win32_PerfFormattedData_PerfOS_Memory 中的 PercentUsed 或 AvailableMBytes
- 磁盘 I/O:用 Win32_PerfFormattedData_PerfDisk_PhysicalDisk,注意 DeviceID 如 “C:” 或 “_Total”
- 避免轮询 Win32_Process 每秒查全部进程——改用 Win32_PerfRawData_PerfProc_Process 并过滤关键进程名,减少资源消耗










