WMI的全称是Windows Management Instrumentation(Windows管理规范),是微软在Windows操作系统中内置的一套管理框架和基础结构。
它就是Windows提供的一个统一“信息仓库”和“管理接口”,让管理员、脚本和应用程序能够用标准的方式获取系统的方方面面数据,甚至执行管理操作(比如重启服务、修改配置等)。
核心作用
- 信息查询:获取硬件型号、BIOS版本、磁盘容量、网络IP、进程列表等。
- 状态监控:实时读取CPU使用率、内存剩余、磁盘吞吐等性能数据。
- 系统配置与操作:可以创建/删除进程、启停服务、修改注册表等(部分操作需要权限)。
- 事件订阅:可以监听系统事件,比如“某个服务意外停止”、“磁盘空间不足”等。
组成
核心组件包括:
WMI服务 (Winmgmt):后台运行的Windows服务,负责处理请求。
WMI存储库:一个保存元数据定义(类、属性、方法)的数据库,启动时从各种提供程序加载。
WMI提供程序 (Provider):一个个特殊的驱动或DLL,它们负责从硬件驱动、注册表、驱动程序等地方收集真实数据,并暴露给WMI。比如“电池”、“磁盘”、“蓝牙”等都有各自的提供程序。
WMI类:数据被组织成“类”(类似于数据库的表),比如Win32_Processor、Win32_LogicalDisk,这些类有属性和方法。
常用WMI项
1. 系统信息类
| WMI 类 |
含义 |
常用查询属性 |
| Win32_NetworkAdapter |
网络适配器 |
Name, Manufacturer, MACAddress, AdapterType, NetConnectionID, Speed, NetEnabled |
| Win32_NetworkAdapterConfiguration |
网卡配置(IP/DHCP/DNS等) |
IPAddress, DefaultIPGateway, DNSServerSearchOrder, DHCPEnabled, MACAddress, IPSubnet |
| Win32_IP4RouteTable |
IPv4 路由表 |
Destination, Mask, NextHop, InterfaceIndex, Metric1 |
2. 处理器与内存
| WMI 类 |
含义 |
常用查询属性 |
| Win32_Processor |
CPU 处理器信息 |
Name, Caption, Manufacturer, MaxClockSpeed, NumberOfCores, NumberOfLogicalProcessors, Architecture, SocketDesignation |
| Win32_PhysicalMemory |
物理内存条信息 |
Manufacturer, PartNumber, Capacity, Speed, MemoryType, FormFactor, SerialNumber |
| Win32_MemoryDevice |
内存设备信息 |
DeviceLocator, MemoryType, Speed, TotalWidth |
3. 磁盘与存储
| WMI 类 |
含义 |
常用查询属性 |
| Win32_DiskDrive |
物理磁盘驱动器 |
Model, Manufacturer, Size, InterfaceType, SerialNumber, MediaType, Partitions |
| Win32_LogicalDisk |
逻辑磁盘(分区/卷) |
DeviceID, DriveType, FileSystem, Size, FreeSpace, VolumeName |
| Win32_Volume |
磁盘卷信息 |
DriveLetter, Label, FileSystem, Capacity, FreeSpace |
| Win32_DiskPartition |
磁盘分区信息 |
Name, Size, Type, Bootable, BootPartition |
4. 网络相关
| WMI 类 |
含义 |
常用查询属性 |
| Win32_NetworkAdapter |
网络适配器 |
Name, Manufacturer, MACAddress, AdapterType, NetConnectionID, Speed, NetEnabled |
| Win32_NetworkAdapterConfiguration |
网卡配置(IP/DHCP/DNS等) |
IPAddress, DefaultIPGateway, DNSServerSearchOrder, DHCPEnabled, MACAddress, IPSubnet |
| Win32_IP4RouteTable |
IPv4 路由表 |
Destination, Mask, NextHop, InterfaceIndex, Metric1 |
5. 显示与显卡
| WMI 类 |
含义 |
常用查询属性 |
| Win32_VideoController |
显卡/显示控制器 |
Name, DriverVersion, DriverDate, AdapterRAM, CurrentHorizontalResolution, CurrentVerticalResolution, CurrentRefreshRate |
| Win32_DesktopMonitor |
显示器 |
Name, MonitorManufacturerName, ScreenWidth, ScreenHeight |
6. 外围设备
| WMI 类 |
含义 |
常用查询属性 |
| Win32_Keyboard |
键盘 |
Name, Description, DeviceID |
| Win32_PointingDevice |
鼠标/触控板等指点设备 |
Name, Manufacturer, HardwareType, DeviceInterface |
| Win32_Printer |
打印机 |
Name, DriverName, PortName, Default, Local, Network, Shared |
| Win32_SoundDevice |
声卡/音频设备 |
Name, Manufacturer, Status |
| Win32_USBController |
USB 控制器 |
Name, Manufacturer, DeviceID |
| Win32_USBHub |
USB 集线器 |
Name, DeviceID |
7. 软件与服务
| WMI 类 |
含义 |
常用查询属性 |
| Win32_Service |
Windows 服务 |
Name, DisplayName, State, StartMode, StartName, PathName |
| Win32_Process |
正在运行的进程 |
Name, ProcessId, CommandLine, ExecutablePath, WorkingSetSize, ThreadCount |
| Win32_Product |
已安装的软件产品(MSI) |
Name, Vendor, Version, InstallDate, IdentifyingNumber |
| Win32_StartupCommand |
开机自启动项 |
Name, Command, Location, User |
| Win32_QuickFixEngineering |
已安装的 Windows 更新/补丁 |
HotFixID, Description, InstalledOn, InstalledBy |
8. 用户与账户
| WMI 类 |
含义 |
常用查询属性 |
| Win32_UserAccount |
本地用户账户 |
Name, FullName, SID, Disabled, Lockout, PasswordRequired |
| Win32_Group |
本地组 |
Name, SID, Domain |
| Win32_GroupUser |
组与用户的隶属关系 |
GroupComponent, PartComponent |
| Win32_LogonSession |
登录会话 |
LogonId, AuthenticationPackage, LogonType, StartTime |
9. 事件与日志
| WMI 类 |
含义 |
常用查询属性 |
| Win32_NTLogEvent |
Windows 事件日志 |
Logfile, Type, EventCode, Message, TimeGenerated, SourceName, User |
| Win32_ComputerShutdownEvent |
计算机关机事件 |
MachineName, Type, TimeGenerated |
10. 性能相关
| WMI 类 |
含义 |
说明 |
| Win32_PerfFormattedData_PerfOS_Processor |
处理器性能计数器 |
PercentProcessorTime, PercentIdleTime |
| Win32_PerfFormattedData_PerfOS_Memory |
内存性能计数器 |
AvailableMBytes, CommittedBytes, PagesPerSec |
| Win32_PerfFormattedData_PerfDisk_LogicalDisk |
逻辑磁盘性能 |
DiskReadBytesPerSec, DiskWriteBytesPerSec |
| Win32_PerfFormattedData_Tcpip_NetworkInterface |
网卡性能 |
BytesTotalPerSec, CurrentBandwidth |