我正在使用 WMI 来查询一些属性磁盘驱动器。WMI 是从驱动器本身读取此信息还是查询注册表?如何直接从驱动器读取属性?
3 回答
Win32_LogicalDisk 类必须查询实际驱动器。我在 powershell 中使用它来显示驱动器的使用情况,它不包含在注册表中。
它不必是单一来源。如果 WMi 类的属性具有 MappingStrings 限定符,您可以在那里找到该属性的来源。例如:
Win32_LogicalDisk.VolumeName - Win32API|文件系统函数|GetVolumeInformation
Win32_LogicalDisk.MediaType - Win32API|设备输入和输出函数|DeviceIoControl
Win32_LogicalDisk.NumberOfBlocks - MIB.IETF|HOST-RESOURCES-MIB.hrStorageSize
所以看起来主要是Win32 API和MIB
WMI 直接查询驱动器。特别是,Win32_DiskDrive和Win32_LogicalDisk类将查询有关驱动器的各种属性。DiskDrive 查询物理属性和配置,而 LogicalDisk 查询驱动器本身的卷和分区(如 C: 等)。并非所有 WMI 属性都会为特定驱动器设置;驱动器可能不支持某些驱动器。
Scriptomatic是一个 Microsoft 实用程序,如果您想检查它,可以编写一个快速脚本来提取每个类的所有属性,以及您可能希望的任何其他 WMI 相关的属性。它甚至可以在 Perl 中完成!