【发布时间】:2010-10-05 08:02:40
【问题描述】:
我正在使用 WMI 来查询一些属性磁盘驱动器。 WMI 是从驱动器本身读取此信息还是查询注册表?如何直接从驱动器中读取属性?
【问题讨论】:
标签: registry wmi hard-drive disk
我正在使用 WMI 来查询一些属性磁盘驱动器。 WMI 是从驱动器本身读取此信息还是查询注册表?如何直接从驱动器中读取属性?
【问题讨论】:
标签: registry wmi hard-drive disk
Win32_LogicalDisk Class 必须查询实际驱动器。我在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 中完成!
【讨论】: