基于WMI获取USB设备信息(即获取插即用设备信息)System.Management.ManagementObjectSearcher--ManagementObjectCollection
获取PC上的设备信息
#region UsbHelper
public static void TestUsbDevice()
{
ushort ProductID = 0xE002, VendorID = 0x0471;
PnPEntityInfo[] UsbDevices = UsbHelper.WhoUsbDevice(VendorID, ProductID);
foreach (var item in UsbDevices)
{
Console.WriteLine($"{item}");
}
}
/// <summary>
/// 即插即用设备信息结构
/// </summary>
public struct PnPEntityInfo
{
public string PNPDeviceID; // 设备ID
public string Name; // 设备名称
public string Description; // 设备描述
public string Service; // 服务
public string Status; // 设备状态
public ushort VendorID; // 供应商标识
public ushort ProductID; // 产品编号
public Guid ClassGuid; // 设备安装类GUID
}
/// <summary>
/// 基于WMI获取USB设备信息
/// </summary>
public partial class UsbHelper
{
#region UsbDevice
/// <summary>
/// 获取所有的USB设备实体(过滤没有VID和PID的设备)
/// </summary>
public static PnPEntityInfo[] AllUsbDevices
{
get
{
return WhoUsbDevice(ushort.MinValue, ushort.MinValue, Guid.Empty);
}
}
/// <summary>
/// 查询USB设备实体(设备要求有VID和PID)
/// </summary>
/// <param name="VendorID">供应商标识,MinValue忽视</param>
/// <param name="ProductID">产品编号,MinValue忽视</param>
/// <param name="ClassGuid">设备安装类Guid,Empty忽视</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoUsbDevice(ushort VendorID, ushort ProductID, Guid ClassGuid)
{
List<PnPEntityInfo> UsbDevices = new List<PnPEntityInfo>();
ManagementObjectCollection PnPEntityCollections = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity").Get();
if (PnPEntityCollections != null)
{
foreach (ManagementObject Entity in PnPEntityCollections)
{
Console.WriteLine($"{Entity}");
}
}
ManagementObjectCollection USBControllerDeviceCollections = new ManagementObjectSearcher("SELECT * FROM Win32_USBControllerDevice").Get();
if (USBControllerDeviceCollections != null)
{
var d = USBControllerDeviceCollections.OfType<ManagementObject>();
foreach (ManagementObject USBControllerDevice in USBControllerDeviceCollections)
{
Console.WriteLine($"{USBControllerDevice}");
}
}
// 获取USB控制器及其相关联的设备实体
ManagementObjectCollection USBControllerDeviceCollection = new ManagementObjectSearcher("SELECT * FROM Win32_USBControllerDevice").Get();
if (USBControllerDeviceCollection != null)
{
var d = USBControllerDeviceCollection.OfType<ManagementObject>();
foreach (ManagementObject USBControllerDevice in USBControllerDeviceCollection)
{
// 获取设备实体的DeviceID
string Dependent = (USBControllerDevice["Dependent"] as string).Split(new char[] { '=' })[1];
// 过滤掉没有VID和PID的USB设备
Match match = Regex.Match(Dependent, "VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}");
if (match.Success)
{
ushort theVendorID = Convert.ToUInt16(match.Value.Substring(4, 4), 16); // 供应商标识
if (VendorID != ushort.MinValue && VendorID != theVendorID) continue;
ushort theProductID = Convert.ToUInt16(match.Value.Substring(13, 4), 16); // 产品编号
if (ProductID != ushort.MinValue && ProductID != theProductID) continue;
ManagementObjectCollection PnPEntityCollection = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE DeviceID=" + Dependent).Get();
if (PnPEntityCollection != null)
{
foreach (ManagementObject Entity in PnPEntityCollection)
{
Guid theClassGuid = new Guid(Entity["ClassGuid"] as string); // 设备安装类GUID
if (ClassGuid != Guid.Empty && ClassGuid != theClassGuid) continue;
PnPEntityInfo Element;
Element.PNPDeviceID = Entity["PNPDeviceID"] as string; // 设备ID
Element.Name = Entity["Name"] as string; // 设备名称
Element.Description = Entity["Description"] as string; // 设备描述
Element.Service = Entity["Service"] as string; // 服务
Element.Status = Entity["Status"] as string; // 设备状态
Element.VendorID = theVendorID; // 供应商标识
Element.ProductID = theProductID; // 产品编号
Element.ClassGuid = theClassGuid; // 设备安装类GUID
UsbDevices.Add(Element);
}
}
}
}
}
if (UsbDevices.Count == 0) return null; else return UsbDevices.ToArray();
}
/// <summary>
/// 查询USB设备实体(设备要求有VID和PID)
/// </summary>
/// <param name="VendorID">供应商标识,MinValue忽视</param>
/// <param name="ProductID">产品编号,MinValue忽视</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoUsbDevice(ushort VendorID, ushort ProductID)
{
return WhoUsbDevice(VendorID, ProductID, Guid.Empty);
}
/// <summary>
/// 查询USB设备实体(设备要求有VID和PID)
/// </summary>
/// <param name="ClassGuid">设备安装类Guid,Empty忽视</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoUsbDevice(Guid ClassGuid)
{
return WhoUsbDevice(ushort.MinValue, ushort.MinValue, ClassGuid);
}
/// <summary>
/// 查询USB设备实体(设备要求有VID和PID)
/// </summary>
/// <param name="PNPDeviceID">设备ID,可以是不完整信息</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoUsbDevice(string PNPDeviceID)
{
List<PnPEntityInfo> UsbDevices = new List<PnPEntityInfo>();
// 获取USB控制器及其相关联的设备实体
ManagementObjectCollection USBControllerDeviceCollection = new ManagementObjectSearcher("SELECT * FROM Win32_USBControllerDevice").Get();
if (USBControllerDeviceCollection != null)
{
foreach (ManagementObject USBControllerDevice in USBControllerDeviceCollection)
{ // 获取设备实体的DeviceID
string Dependent = (USBControllerDevice["Dependent"] as string).Split(new char[] { '=' })[1];
if (!string.IsNullOrEmpty(PNPDeviceID))
{ // 注意:忽视大小写
if (Dependent.IndexOf(PNPDeviceID, 1, PNPDeviceID.Length - 2, StringComparison.OrdinalIgnoreCase) == -1) continue;
}
// 过滤掉没有VID和PID的USB设备
Match match = Regex.Match(Dependent, "VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}");
if (match.Success)
{
ManagementObjectCollection PnPEntityCollection = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE DeviceID=" + Dependent).Get();
if (PnPEntityCollection != null)
{
foreach (ManagementObject Entity in PnPEntityCollection)
{
PnPEntityInfo Element;
Element.PNPDeviceID = Entity["PNPDeviceID"] as string; // 设备ID
Element.Name = Entity["Name"] as string; // 设备名称
Element.Description = Entity["Description"] as string; // 设备描述
Element.Service = Entity["Service"] as string; // 服务
Element.Status = Entity["Status"] as string; // 设备状态
Element.VendorID = Convert.ToUInt16(match.Value.Substring(4, 4), 16); // 供应商标识
Element.ProductID = Convert.ToUInt16(match.Value.Substring(13, 4), 16); // 产品编号 // 产品编号
Element.ClassGuid = new Guid(Entity["ClassGuid"] as string); // 设备安装类GUID
UsbDevices.Add(Element);
}
}
}
}
}
if (UsbDevices.Count == 0) return null; else return UsbDevices.ToArray();
}
/// <summary>
/// 根据服务定位USB设备
/// </summary>
/// <param name="ServiceCollection">要查询的服务集合</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoUsbDevice(string[] ServiceCollection)
{
if (ServiceCollection == null || ServiceCollection.Length == 0)
return WhoUsbDevice(ushort.MinValue, ushort.MinValue, Guid.Empty);
List<PnPEntityInfo> UsbDevices = new List<PnPEntityInfo>();
// 获取USB控制器及其相关联的设备实体
ManagementObjectCollection USBControllerDeviceCollection = new ManagementObjectSearcher("SELECT * FROM Win32_USBControllerDevice").Get();
if (USBControllerDeviceCollection != null)
{
foreach (ManagementObject USBControllerDevice in USBControllerDeviceCollection)
{ // 获取设备实体的DeviceID
string Dependent = (USBControllerDevice["Dependent"] as string).Split(new char[] { '=' })[1];
// 过滤掉没有VID和PID的USB设备
Match match = Regex.Match(Dependent, "VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}");
if (match.Success)
{
ManagementObjectCollection PnPEntityCollection = new ManagementObjectSearcher("SELECT * FROM Win32_PnPEntity WHERE DeviceID=" + Dependent).Get();
if (PnPEntityCollection != null)
{
foreach (ManagementObject Entity in PnPEntityCollection)
{
string theService = Entity["Service"] as string; // 服务
if (string.IsNullOrEmpty(theService)) continue;
foreach (string Service in ServiceCollection)
{ // 注意:忽视大小写
if (string.Compare(theService, Service, true) != 0) continue;
PnPEntityInfo Element;
Element.PNPDeviceID = Entity["PNPDeviceID"] as string; // 设备ID
Element.Name = Entity["Name"] as string; // 设备名称
Element.Description = Entity["Description"] as string; // 设备描述
Element.Service = theService; // 服务
Element.Status = Entity["Status"] as string; // 设备状态
Element.VendorID = Convert.ToUInt16(match.Value.Substring(4, 4), 16); // 供应商标识
Element.ProductID = Convert.ToUInt16(match.Value.Substring(13, 4), 16); // 产品编号
Element.ClassGuid = new Guid(Entity["ClassGuid"] as string); // 设备安装类GUID
UsbDevices.Add(Element);
break;
}
}
}
}
}
}
if (UsbDevices.Count == 0) return null; else return UsbDevices.ToArray();
}
#endregion
#region PnPEntity
/// <summary>
/// 所有即插即用设备实体(过滤没有VID和PID的设备)
/// </summary>
public static PnPEntityInfo[] AllPnPEntities
{
get
{
return WhoPnPEntity(ushort.MinValue, ushort.MinValue, Guid.Empty);
}
}
/// <summary>
/// 根据VID和PID及设备安装类GUID定位即插即用设备实体
/// </summary>
/// <param name="VendorID">供应商标识,MinValue忽视</param>
/// <param name="ProductID">产品编号,MinValue忽视</param>
/// <param name="ClassGuid">设备安装类Guid,Empty忽视</param>
/// <returns>设备列表</returns>
/// <remarks>
/// HID:{745a17a0-74d3-11d0-b6fe-00a0c90f57da}
/// Imaging Device:{6bdd1fc6-810f-11d0-bec7-08002be2092f}
/// Keyboard:{4d36e96b-e325-11ce-bfc1-08002be10318}
/// Mouse:{4d36e96f-e325-11ce-bfc1-08002be10318}
/// Network Adapter:{4d36e972-e325-11ce-bfc1-08002be10318}
/// USB:{36fc9e60-c465-11cf-8056-444553540000}
/// </remarks>
public static PnPEntityInfo[] WhoPnPEntity(ushort VendorID, ushort ProductID, Guid ClassGuid)
{
List<PnPEntityInfo> PnPEntities = new List<PnPEntityInfo>();
// 枚举即插即用设备实体
string VIDPID;
if (VendorID == ushort.MinValue)
{
if (ProductID == ushort.MinValue)
VIDPID = "'%VID[_]____&PID[_]____%'";
else
VIDPID = "'%VID[_]____&PID[_]" + ProductID.ToString("X4") + "%'";
}
else
{
if (ProductID == ushort.MinValue)
VIDPID = "'%VID[_]" + VendorID.ToString("X4") + "&PID[_]____%'";
else
VIDPID = "'%VID[_]" + VendorID.ToString("X4") + "&PID[_]" + ProductID.ToString("X4") + "%'";
}
string QueryString;
if (ClassGuid == Guid.Empty)
QueryString = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE" + VIDPID;
else
QueryString = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE" + VIDPID + " AND ClassGuid='" + ClassGuid.ToString("B") + "'";
ManagementObjectCollection PnPEntityCollection = new ManagementObjectSearcher(QueryString).Get();
if (PnPEntityCollection != null)
{
foreach (ManagementObject Entity in PnPEntityCollection)
{
string PNPDeviceID = Entity["PNPDeviceID"] as string;
Match match = Regex.Match(PNPDeviceID, "VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}");
if (match.Success)
{
PnPEntityInfo Element;
Element.PNPDeviceID = PNPDeviceID; // 设备ID
Element.Name = Entity["Name"] as string; // 设备名称
Element.Description = Entity["Description"] as string; // 设备描述
Element.Service = Entity["Service"] as string; // 服务
Element.Status = Entity["Status"] as string; // 设备状态
Element.VendorID = Convert.ToUInt16(match.Value.Substring(4, 4), 16); // 供应商标识
Element.ProductID = Convert.ToUInt16(match.Value.Substring(13, 4), 16); // 产品编号
Element.ClassGuid = new Guid(Entity["ClassGuid"] as string); // 设备安装类GUID
PnPEntities.Add(Element);
}
}
}
if (PnPEntities.Count == 0) return null; else return PnPEntities.ToArray();
}
/// <summary>
/// 根据VID和PID定位即插即用设备实体
/// </summary>
/// <param name="VendorID">供应商标识,MinValue忽视</param>
/// <param name="ProductID">产品编号,MinValue忽视</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoPnPEntity(ushort VendorID, ushort ProductID)
{
return WhoPnPEntity(VendorID, ProductID, Guid.Empty);
}
/// <summary>
/// 根据设备安装类GUID定位即插即用设备实体
/// </summary>
/// <param name="ClassGuid">设备安装类Guid,Empty忽视</param>
/// <returns>设备列表</returns>
public static PnPEntityInfo[] WhoPnPEntity(Guid ClassGuid)
{
return WhoPnPEntity(ushort.MinValue, ushort.MinValue, ClassGuid);
}
/// <summary>
/// 根据设备ID定位设备
/// </summary>
/// <param name="PNPDeviceID">设备ID,可以是不完整信息</param>
/// <returns>设备列表</returns>
/// <remarks>
/// 注意:对于下划线,需要写成“[_]”,否则视为任意字符
/// </remarks>
public static PnPEntityInfo[] WhoPnPEntity(string PNPDeviceID)
{
List<PnPEntityInfo> PnPEntities = new List<PnPEntityInfo>();
// 枚举即插即用设备实体
string QueryString;
if (string.IsNullOrEmpty(PNPDeviceID))
{
QueryString = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE '%VID[_]____&PID[_]____%'";
}
else
{ // LIKE子句中有反斜杠字符将会引发WQL查询异常
QueryString = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE '%" + PNPDeviceID.Replace('\\', '_') + "%'";
}
ManagementObjectCollection PnPEntityCollection = new ManagementObjectSearcher(QueryString).Get();
if (PnPEntityCollection != null)
{
foreach (ManagementObject Entity in PnPEntityCollection)
{
string thePNPDeviceID = Entity["PNPDeviceID"] as string;
Match match = Regex.Match(thePNPDeviceID, "VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}");
if (match.Success)
{
PnPEntityInfo Element;
Element.PNPDeviceID = thePNPDeviceID; // 设备ID
Element.Name = Entity["Name"] as string; // 设备名称
Element.Description = Entity["Description"] as string; // 设备描述
Element.Service = Entity["Service"] as string; // 服务
Element.Status = Entity["Status"] as string; // 设备状态
Element.VendorID = Convert.ToUInt16(match.Value.Substring(4, 4), 16); // 供应商标识
Element.ProductID = Convert.ToUInt16(match.Value.Substring(13, 4), 16); // 产品编号
Element.ClassGuid = new Guid(Entity["ClassGuid"] as string); // 设备安装类GUID
PnPEntities.Add(Element);
}
}
}
if (PnPEntities.Count == 0) return null; else return PnPEntities.ToArray();
}
/// <summary>
/// 根据服务定位设备
/// </summary>
/// <param name="ServiceCollection">要查询的服务集合,null忽视</param>
/// <returns>设备列表</returns>
/// <remarks>
/// 跟服务相关的类:
/// Win32_SystemDriverPNPEntity
/// Win32_SystemDriver
/// </remarks>
public static PnPEntityInfo[] WhoPnPEntity(string[] ServiceCollection)
{
if (ServiceCollection == null || ServiceCollection.Length == 0)
return WhoPnPEntity(ushort.MinValue, ushort.MinValue, Guid.Empty);
List<PnPEntityInfo> PnPEntities = new List<PnPEntityInfo>();
// 枚举即插即用设备实体
string QueryString = "SELECT * FROM Win32_PnPEntity WHERE PNPDeviceID LIKE '%VID[_]____&PID[_]____%'";
ManagementObjectCollection PnPEntityCollection = new ManagementObjectSearcher(QueryString).Get();
if (PnPEntityCollection != null)
{
foreach (ManagementObject Entity in PnPEntityCollection)
{
string PNPDeviceID = Entity["PNPDeviceID"] as string;
Match match = Regex.Match(PNPDeviceID, "VID_[0-9|A-F]{4}&PID_[0-9|A-F]{4}");
if (match.Success)
{
string theService = Entity["Service"] as string; // 服务
if (string.IsNullOrEmpty(theService)) continue;
foreach (string Service in ServiceCollection)
{ // 注意:忽视大小写
if (string.Compare(theService, Service, true) != 0) continue;
PnPEntityInfo Element;
Element.PNPDeviceID = PNPDeviceID; // 设备ID
Element.Name = Entity["Name"] as string; // 设备名称
Element.Description = Entity["Description"] as string; // 设备描述
Element.Service = theService; // 服务
Element.Status = Entity["Status"] as string; // 设备状态
Element.VendorID = Convert.ToUInt16(match.Value.Substring(4, 4), 16); // 供应商标识
Element.ProductID = Convert.ToUInt16(match.Value.Substring(13, 4), 16); // 产品编号
Element.ClassGuid = new Guid(Entity["ClassGuid"] as string); // 设备安装类GUID
PnPEntities.Add(Element);
break;
}
}
}
}
if (PnPEntities.Count == 0) return null; else return PnPEntities.ToArray();
}
#endregion
}
//public enum HardwareEnum
//{
// // 硬件
// Win32_Processor, // CPU 处理器
// Win32_PhysicalMemory, // 物理内存条
// Win32_Keyboard, // 键盘
// Win32_PointingDevice, // 点输入设备,包括鼠标。
// Win32_FloppyDrive, // 软盘驱动器
// Win32_DiskDrive, // 硬盘驱动器
// Win32_CDROMDrive, // 光盘驱动器
// Win32_BaseBoard, // 主板
// Win32_BIOS, // BIOS 芯片
// Win32_ParallelPort, // 并口
// Win32_SerialPort, // 串口
// Win32_SerialPortConfiguration, // 串口配置
// Win32_SoundDevice, // 多媒体设置,一般指声卡。
// Win32_SystemSlot, // 主板插槽 (ISA & PCI & AGP)
// Win32_USBController, // USB 控制器
// Win32_NetworkAdapter, // 网络适配器
// Win32_NetworkAdapterConfiguration, // 网络适配器设置
// Win32_Printer, // 打印机
// Win32_PrinterConfiguration, // 打印机设置
// Win32_PrintJob, // 打印机任务
// Win32_TCPIPPrinterPort, // 打印机端口
// Win32_POTSModem, // MODEM
// Win32_POTSModemToSerialPort, // MODEM 端口
// Win32_DesktopMonitor, // 显示器
// Win32_DisplayConfiguration, // 显卡
// Win32_DisplayControllerConfiguration, // 显卡设置
// Win32_VideoController, // 显卡细节。
// Win32_VideoSettings, // 显卡支持的显示模式。
// // 操作系统
// Win32_TimeZone, // 时区
// Win32_SystemDriver, // 驱动程序
// Win32_DiskPartition, // 磁盘分区
// Win32_LogicalDisk, // 逻辑磁盘
// Win32_LogicalDiskToPartition, // 逻辑磁盘所在分区及始末位置。
// Win32_LogicalMemoryConfiguration, // 逻辑内存配置
// Win32_PageFile, // 系统页文件信息
// Win32_PageFileSetting, // 页文件设置
// Win32_BootConfiguration, // 系统启动配置
// Win32_ComputerSystem, // 计算机信息简要
// Win32_OperatingSystem, // 操作系统信息
// Win32_StartupCommand, // 系统自动启动程序
// Win32_Service, // 系统安装的服务
// Win32_Group, // 系统管理组
// Win32_GroupUser, // 系统组帐号
// Win32_UserAccount, // 用户帐号
// Win32_Process, // 系统进程
// Win32_Thread, // 系统线程
// Win32_Share, // 共享
// Win32_NetworkClient, // 已安装的网络客户端
// Win32_NetworkProtocol, // 已安装的网络协议
// Win32_PnPEntity, //all device
//}
//如果是设备字符串中存在COM,则保存该字符串,则找到串口名。
//private static string[] GetHarewareInfo(HardwareEnum hardType, string propKey)
//{
// List<string> strs = new List<string>();
// try
// {
// using (ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from " + hardType))
// {
// var hardInfos = searcher.Get();
// foreach (var hardInfo in hardInfos)
// {
// if (hardInfo.Properties[propKey].Value != null)
// {
// String str = hardInfo.Properties[propKey].Value.ToString();
// if (str.Contains("COM"))
// {
// strs.Add(str);
// }
// }
// }
// }
// return strs.ToArray();
// }
// catch
// {
// //MessageBox.Show("硬件端口查找错误", "程序猿的提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
// return null;
// }
// finally
// {
// strs = null;
// }
//}
#endregion
WMI使用的WIN32_类库名
WMI使用的WIN32_类库名
包括:硬件类、操作系统类、安装应用程序类、WMI服务管理类、性能计数器类
1、硬件类
冷却类别
Win32_Fan--风扇
Win32_HeatPipe--热管
Win32_Refrigeration--致冷
Win32_TemperatureProbe--温度传感
输入设备类别
Win32_Keyboard--键盘
Win32_PointingDevice--指示设备(如鼠标)
大容量存储类别
Win32_AutochkSetting--磁盘自动检查操作设置
Win32_CDROMDrive--光盘驱动器
Win32_DiskDrive--硬盘驱动器
Win32_FloppyDrive--软盘驱动器
Win32_PhysicalMedia--物理媒体
Win32_TapeDrive--磁带驱动器
主板、控制器、端口类别
Win32_1394Controller--1394控制器
Win32_1394ControllerDevice--1394控制器设备
Win32_AllocatedResource--已分配的资源
Win32_AssociatedProcessorMemory--处理器和高速缓冲存储器
Win32_BaseBoard--主板
Win32_BIOS--BIOS(基本输入输出系统)
Win32_Bus--总线
Win32_CacheMemory--缓存内存
Win32_ControllerHasHub--USB控制器
Win32_DeviceBus--设备总线
Win32_DeviceMemoryAddress--设备存储器地址
Win32_DeviceSettings--设备设置
Win32_DMAChannel--DMA通道
Win32_FloppyController--软盘控制器
Win32_IDEController--IDE控制器
Win32_IDEControllerDevice--IDE控制器设备
Win32_InfraredDevice--红外线设备
Win32_IRQResource--中断(IRQ)资源
Win32_MemoryArray--内存数组
Win32_MemoryArrayLocation--内存数组位置
Win32_MemoryDevice--内存设备
Win32_MemoryDeviceArray--内存设备数组
Win32_MemoryDeviceLocation--内存设备位置
Win32_MotherboardDevice--主板设备
Win32_OnBoardDevice--插件设备
Win32_ParallelPort--并行端口
Win32_PCMCIAController--PCMCIA控制器
Win32_PhysicalMemory--物理内存
Win32_PhysicalMemoryArray--物理内存数组
Win32_PhysicalMemoryLocation--物理内存位置
Win32_PNPAllocatedResource--PNP保留资源
Win32_PNPDevice--PNP设备
Win32_PNPEntity--PNP实体
Win32_PortConnector--端口连接器
Win32_PortResource--端口资源
Win32_Processor--(CPU)处理器
Win32_SCSIController--SCSI控制器
Win32_SCSIControllerDevice--SCSI控制器设备
Win32_SerialPort--串行端口
Win32_SerialPortConfiguration--串行端口配置
Win32_SerialPortSetting--串行端口设置
Win32_SMBIOSMemory--内存有关的设备的管理
Win32_SoundDevice--声卡
Win32_SystemBIOS--系统BIOS
Win32_SystemDriverPNPEntity--系统驱动器PNP实体
Win32_SystemEnclosure--系统封闭
Win32_SystemMemoryResource--系统内存资源
Win32_SystemSlot--系统插槽
Win32_USBController--USB控制器
Win32_USBControllerDevice--USB控制器设备
Win32_USBHub--USB集线器
建网设备类别
Win32_NetworkAdapter--网络适配器
Win32_NetworkAdapterConfiguration--网络适配器配置
Win32_NetworkAdapterSetting--网络适配器设置
电源类别
Win32_AssociatedBattery--联合电池组
Win32_Battery--电池
Win32_CurrentProbe--当前传感
Win32_PortableBattery--便携式电池
Win32_PowerManagementEvent--电池事件管理
Win32_UninterruptiblePowerSupply--UPS电源
Win32_VoltageProbe--电压探测
打印类别
Win32_DriverForDevice--驱动器设备
Win32_Printer--打印机
Win32_PrinterConfiguration--打印机配置
Win32_PrinterController--打印机控制器
Win32_PrinterDriver--打印机驱动器
Win32_PrinterDriverDll--打印机驱动器DLL
Win32_PrinterSetting--打印机设置
Win32_PrintJob--打印工作
Win32_TCPIPPrinterPort--TCPIP打印机端口
电话类别
Win32_POTSModem--POTS调制解调器(Modem)
Win32_POTSModemToSerialPort--POTS调制解调器串行端口
视频监视器类别
Win32_DesktopMonitor--即插即用监视器
Win32_DisplayConfiguration--显示配置
Win32_DisplayControllerConfiguration--显示控制器配置
Win32_VideoConfiguration--视频配置
Win32_VideoController--视频控制器
Win32_VideoSettings--视频设置
2、操作系统类
COM类别
Win32_ClassicCOMApplicationClasses--
Win32_ClassicCOMClass--
Win32_ClassicCOMClassSettings--
Win32_ClientApplicationSetting--
Win32_COMApplication--COM应用
Win32_COMApplicationClasses--
Win32_COMApplicationSettings--
Win32_COMClass--
Win32_ComClassAutoEmulator--
Win32_ComClassEmulator--
Win32_ComponentCategory--
Win32_COMSetting--
Win32_DCOMApplication--DCOM应用
Win32_DCOMApplicationAccessAllowedSetting--
Win32_DCOMApplicationSetting--
Win32_ImplementedCategory--
桌面类别
Win32_Desktop--桌面
Win32_Environment--环境
Win32_TimeZone--时区
Win32_UserDesktop--使用者桌面
驱动程序类别
Win32_DriverVXD--
Win32_SystemDriver--系统驱动程序
文件系统类别
Win32_CIMLogicalDeviceCIMDataFile--
Win32_Directory--
Win32_DirectorySpecification--
Win32_DiskDriveToDiskPartition--
Win32_DiskPartition--磁盘逻辑分区
Win32_DiskQuota--NTFS磁盘分区定额
Win32_LogicalDisk--逻辑磁盘分区
Win32_LogicalDiskRootDirectory--
Win32_LogicalDiskToPartition--
Win32_MappedLogicalDisk--映射逻辑磁盘
Win32_OperatingSystemAutochkSetting--
Win32_QuotaSetting--
Win32_ShortcutFile--
Win32_SubDirectory--
Win32_SystemPartitions--
Win32_Volume--
Win32_VolumeQuota--
Win32_VolumeQuotaSetting--
Win32_VolumeUserQuota--
作业对象类别
Win32_CollectionStatistics--
Win32_LUID--
Win32_LUIDandAttributes--
Win32_NamedJobObject--
Win32_NamedJobObjectActgInfo--
Win32_NamedJobObjectLimit--
Win32_NamedJobObjectLimitSetting--
Win32_NamedJobObjectProcess--
Win32_NamedJobObjectSecLimit--
Win32_NamedJobObjectSecLimitSetting--
Win32_NamedJobObjectStatistics--
Win32_SIDandAttributes--
Win32_TokenGroups--
Win32_TokenPrivileges--
存储页面文件类别
Win32_LogicalMemoryConfiguration--逻辑内存配置
Win32_PageFile--页面文件
Win32_PageFileElementSetting--
Win32_PageFileSetting--页面文件设置
Win32_PageFileUsage--页面文件使用
Win32_SystemLogicalMemoryConfiguration--
多媒体视听类别
Win32_CodecFile--编解码器文件
建网类别
Win32_ActiveRoute--活动路由
Win32_IP4PersistedRouteTable--
Win32_IP4RouteTable--路由表
Win32_IP4RouteTableEvent--
Win32_NetworkClient--
Win32_NetworkConnection--
Win32_NetworkProtocol--网络协议
Win32_NTDomain--
Win32_PingStatus--
Win32_ProtocolBinding--协议绑定
操作系统事件类别
Win32_ComputerShutdownEvent--
Win32_ComputerSystemEvent--
Win32_DeviceChangeEvent--
Win32_ModuleLoadTrace--
Win32_ModuleTrace--
Win32_ProcessStartTrace--
Win32_ProcessStopTrace--
Win32_ProcessTrace--
Win32_SystemConfigurationChangeEvent--
Win32_SystemTrace--
Win32_ThreadStartTrace--
Win32_ThreadStopTrace--
Win32_ThreadTrace--
Win32_VolumeChangeEvent--
Win32_BootConfiguration--引导配置
Win32_ComputerSystem--计算机系统
Win32_ComputerSystemProcessor--计算机系统处理器
Win32_ComputerSystemProduct--计算机系统产品
Win32_DependentService--信任的服务
Win32_LoadOrderGroup--装载顺序组
Win32_LoadOrderGroupServiceDependencies--
Win32_LoadOrderGroupServiceMembers--
Win32_OperatingSystem--操作系统
Win32_OperatingSystemQFE--
Win32_OSRecoveryConfiguration--操作系统恢复配置
Win32_QuickFixEngineering--
Win32_StartupCommand--启动命令
Win32_SystemBootConfiguration--
Win32_SystemDesktop--
Win32_SystemDevices--
Win32_SystemLoadOrderGroups--
Win32_SystemNetworkConnections--
Win32_SystemOperatingSystem--
Win32_SystemProcesses--
Win32_SystemProgramGroups--Windows开始程序组
Win32_SystemResources--
Win32_SystemServices--系统服务
Win32_SystemSetting--
Win32_SystemSystemDriver--
Win32_SystemTimeZone--系统时区
Win32_SystemUsers--系统用户
进程类别
Win32_Process--进程
Win32_ProcessStartup--
Win32_Thread--线程
注册类别
Win32_Registry--注册表
调试程序作业类别
Win32_CurrentTime--当前时间
Win32_ScheduledJob--
安全类别
Win32_AccountSID--
Win32_ACE--
Win32_LogicalFileAccess--
Win32_LogicalFileAuditing--
Win32_LogicalFileGroup--
Win32_LogicalFileOwner--
Win32_LogicalFileSecuritySetting--
Win32_LogicalShareAccess--
Win32_LogicalShareAuditing--
Win32_LogicalShareSecuritySetting--
Win32_PrivilegesStatus--
Win32_SecurityDescriptor--
Win32_SecuritySetting--
Win32_SecuritySettingAccess--
Win32_SecuritySettingAuditing--
Win32_SecuritySettingGroup--
Win32_SecuritySettingOfLogicalFile--
Win32_SecuritySettingOfLogicalShare--
Win32_SecuritySettingOfObject--
Win32_SecuritySettingOwner--
Win32_SID--
Win32_Trustee--
服务类别
Win32_BaseService--基本服务
Win32_Service--服务
共享类别
Win32_DFSNode--
Win32_DFSNodeTarget--
Win32_DFSTarget--
Win32_ServerConnection--
Win32_ServerSession--
Win32_ConnectionShare--
Win32_PrinterShare--
Win32_SessionConnection--
Win32_SessionProcess--
Win32_ShareToDirectory--
Win32_Share--共享文件夹
开始菜单类别
Win32_LogicalProgramGroup--Windows开始逻辑程序组
Win32_LogicalProgramGroupDirectory--Windows开始逻辑程序组目录Win32_LogicalProgramGroupItem--Windows开始逻辑程序组项
Win32_LogicalProgramGroupItemDataFile--Windows开始逻辑程序组项数据文件
Win32_ProgramGroup--Windows程序组
Win32_ProgramGroupContents--Windows程序组内容
Win32_ProgramGroupOrItem--Windows程序组或项
存储类别
Win32_ShadowBy--
Win32_ShadowContext--
Win32_ShadowCopy--
Win32_ShadowDiffVolumeSupport--
Win32_ShadowFor--
Win32_ShadowOn--
Win32_ShadowProvider--
Win32_ShadowStorage--
Win32_ShadowVolumeSupport--
Win32_Volume--
Win32_VolumeUserQuota--
用户类别
Win32_Account--帐户
Win32_Group--组
Win32_GroupInDomain--域中的组
Win32_GroupUser--组用户
Win32_LogonSession--登录会话
Win32_LogonSessionMappedDisk--
Win32_NetworkLoginProfile--
Win32_SystemAccount--系统账户
Win32_UserAccount--使用账户
Win32_UserInDomain--域中的用户
Windows NT的事件日志类别
Win32_NTEventlogFile--事件日志文件
Win32_NTLogEvent--日志事件
Win32_NTLogEventComputer--日志事件计算机
Win32_NTLogEventLog--日志事件日志
Win32_NTLogEventUser--
Windows产品激活类别
Win32_ComputerSystemWindowsProductActivationSetting--
Win32_Proxy--代理
Win32_WindowsProductActivation--Windows产品激活
3、安装应用程序类
Win32_ActionCheck--
Win32_ApplicationCommandLine--
Win32_ApplicationService--
Win32_Binary--
Win32_BindImageAction--
Win32_CheckCheck--
Win32_ClassInfoAction--
Win32_CommandLineAccess--
Win32_Condition--
Win32_CreateFolderAction--
Win32_DuplicateFileAction--
Win32_EnvironmentSpecification--
Win32_ExtensionInfoAction--
Win32_FileSpecification--
Win32_FontInfoAction--
Win32_IniFileSpecification--
Win32_InstalledSoftwareElement--
Win32_LaunchCondition--
Win32_ManagedSystemElementResource--
Win32_MIMEInfoAction--
Win32_MoveFileAction--
Win32_MSIResource--
Win32_ODBCAttribute--
Win32_ODBCDataSourceAttribute--
Win32_ODBCDataSourceSpecification--
Win32_ODBCDriverAttribute--
Win32_ODBCDriverSoftwareElement--
Win32_ODBCDriverSpecification--
Win32_ODBCSourceAttribute--
Win32_ODBCTranslatorSpecification--
Win32_Patch--
Win32_PatchFile--
Win32_PatchPackage--
Win32_Product--
Win32_ProductCheck--
Win32_ProductResource--
Win32_ProductSoftwareFeatures--
Win32_ProgIDSpecification--
Win32_Property--
Win32_PublishComponentAction--
Win32_RegistryAction--
Win32_RemoveFileAction--
Win32_RemoveIniAction--
Win32_ReserveCost--
Win32_SelfRegModuleAction--
Win32_ServiceControl--
Win32_ServiceSpecification--
Win32_ServiceSpecificationService--
Win32_SettingCheck--
Win32_ShortcutAction--
Win32_ShortcutSAP--
Win32_SoftwareElement--
Win32_SoftwareElementAction--
Win32_SoftwareElementCheck--
Win32_SoftwareElementCondition--
Win32_SoftwareElementResource--
Win32_SoftwareFeature--
Win32_SoftwareFeatureAction--
Win32_SoftwareFeatureCheck--
Win32_SoftwareFeatureParent--
Win32_SoftwareFeatureSoftwareElements--
Win32_TypeLibraryAction--
4、WMI服务管理类
WMI配置类别
Win32_MethodParameterClass--方法参数类
WMI管理类别
Win32_WMISetting--WMI设置
Win32_WMIElementSetting--WMI单元设置
5、性能计数器类
格式化性能计数器类别
Win32_PerfFormattedData--
Win32_PerfFormattedData_ASP_ActiveServerPages--
Win32_PerfFormattedData_ContentFilter_IndexingServiceFilter--
Win32_PerfFormattedData_ContentIndex_IndexingService--
Win32_PerfFormattedData_InetInfo_InternetInformationServicesGlobal--
Win32_PerfFormattedData_ISAPISearch_HttpIndexingService--
Win32_PerfFormattedData_MSDTC_DistributedTransactionCoordinator--
Win32_PerfFormattedData_NTFSDRV_SMTPNTFSStoreDriver--
Win32_PerfFormattedData_PerfDisk_LogicalDisk--
Win32_PerfFormattedData_PerfDisk_PhysicalDisk--
Win32_PerfFormattedData_PerfNet_Browser--
Win32_PerfFormattedData_PerfNet_Redirector--
Win32_PerfFormattedData_PerfNet_Server--
Win32_PerfFormattedData_PerfNet_ServerWorkQueues--
Win32_PerfFormattedData_PerfOS_Cache--
Win32_PerfFormattedData_PerfOS_Memory--
Win32_PerfFormattedData_PerfOS_Objects--
Win32_PerfFormattedData_PerfOS_PagingFile--
Win32_PerfFormattedData_PerfOS_Processor--
Win32_PerfFormattedData_PerfOS_System--
Win32_PerfFormattedData_PerfProc_FullImage_Costly--
Win32_PerfFormattedData_PerfProc_Image_Costly--Win32_PerfFormattedData_PerfProc_JobObject--Win32_PerfFormattedData_PerfProc_JobObjectDetails--Win32_PerfFormattedData_PerfProc_Process--Win32_PerfFormattedData_PerfProc_ProcessAddressSpace_Costly--Win32_PerfFormattedData_PerfProc_Thread--Win32_PerfFormattedData_PerfProc_ThreadDetails_Costly--Win32_PerfFormattedData_PSched_PSchedFlow--
Win32_PerfFormattedData_PSched_PSchedPipe--Win32_PerfFormattedData_RemoteAccess_RASPort--Win32_PerfFormattedData_RemoteAccess_RASTotal--Win32_PerfFormattedData_RSVP_ACSRSVPInterfaces--Win32_PerfFormattedData_RSVP_ACSRSVPService--Win32_PerfFormattedData_SMTPSVC_SMTPServer--Win32_PerfFormattedData_Spooler_PrintQueue--
Win32_PerfFormattedData_TapiSrv_Telephony--
Win32_PerfFormattedData_Tcpip_ICMP--
Win32_PerfFormattedData_Tcpip_IP--
Win32_PerfFormattedData_Tcpip_NBTConnection--Win32_PerfFormattedData_Tcpip_NetworkInterface--
Win32_PerfFormattedData_Tcpip_TCP--
Win32_PerfFormattedData_Tcpip_UDP--Win32_PerfFormattedData_TermService_TerminalServices--Win32_PerfFormattedData_TermService_TerminalServicesSession--Win32_PerfFormattedData_W3SVC_WebService--
原始性能计数器类别
Win32_PerfRawData--Win32_PerfRawData_ASP_ActiveServerPages--Win32_PerfRawData_ContentFilter_IndexingServiceFilter--Win32_PerfRawData_ContentIndex_IndexingService--Win32_PerfRawData_InetInfo_InternetInformationServicesGlobal--Win32_PerfRawData_ISAPISearch_HttpIndexingService--Win32_PerfRawData_MSDTC_DistributedTransactionCoordinator--Win32_PerfRawData_NTFSDRV_SMTPNTFSStoreDriver--
Win32_PerfRawData_PerfDisk_LogicalDisk--
Win32_PerfRawData_PerfDisk_PhysicalDisk--
Win32_PerfRawData_PerfNet_Browser--
Win32_PerfRawData_PerfNet_Redirector--
Win32_PerfRawData_PerfNet_Server--
Win32_PerfRawData_PerfNet_ServerWorkQueues--
Win32_PerfRawData_PerfOS_Cache--
Win32_PerfRawData_PerfOS_Memory--
Win32_PerfRawData_PerfOS_Objects--
Win32_PerfRawData_PerfOS_PagingFile--
Win32_PerfRawData_PerfOS_Processor--
Win32_PerfRawData_PerfOS_System--
Win32_PerfRawData_PerfProc_FullImage_Costly--
Win32_PerfRawData_PerfProc_Image_Costly--
Win32_PerfRawData_PerfProc_JobObject--
Win32_PerfRawData_PerfProc_JobObjectDetails--
Win32_PerfRawData_PerfProc_Process--Win32_PerfRawData_PerfProc_ProcessAddressSpace_Costly--Win32_PerfRawData_PerfProc_Thread--
Win32_PerfRawData_PerfProc_ThreadDetails_Costly--
Win32_PerfRawData_PSched_PSchedFlow--
Win32_PerfRawData_PSched_PSchedPipe--
Win32_PerfRawData_RemoteAccess_RASPort--
Win32_PerfRawData_RemoteAccess_RASTotal--
Win32_PerfRawData_RSVP_ACSRSVPInterfaces--
Win32_PerfRawData_RSVP_ACSRSVPService--
Win32_PerfRawData_SMTPSVC_SMTPServer--
Win32_PerfRawData_Spooler_PrintQueue--
Win32_PerfRawData_TapiSrv_Telephony--
Win32_PerfRawData_Tcpip_ICMP--
Win32_PerfRawData_Tcpip_IP--
Win32_PerfRawData_Tcpip_NBTConnection--
Win32_PerfRawData_Tcpip_NetworkInterface--
Win32_PerfRawData_Tcpip_TCP--
Win32_PerfRawData_Tcpip_UDP--
Win32_PerfRawData_TermService_TerminalServices--Win32_PerfRawData_TermService_TerminalServicesSession--Win32_PerfRawData_W3SVC_WebService--