【发布时间】:2017-01-19 17:09:25
【问题描述】:
我在尝试确定驱动器的制造商序列号时遇到了很多麻烦,这可能是最快的方法(而不是调用 WMI)。
我可以用来查询制造商序列号的信息是驱动器号(例如C:\)或操作系统分配给驱动器的数字序列号(例如4030771280),我通过指定调用GetVolumeInformation函数的驱动器号来检索该信息。
Stackoverflow 中有很多关于如何使用 WMI 检索制造商序列号的示例和 Q/A,但是所有这些问题和答案都是针对 CURRENT 驱动器的, Win32_PhysicalMedia 和 Win32_DiskDrive 类似乎没有公开我可以与 WHERE 一起使用来查询特定驱动器序列号的属性给定一个驱动器号或其系统的序列号
我对暗示中间步骤的解决方案持开放态度,例如“首先您需要从驱动器号获取设备 ID,然后您可以使用该值来查询 WMI”(当然最好使用 WinAPI函数来避免 WMI 调用的负面性能影响),问题是我不知道如何像引用的那样进行所需的检索,因为 Volume Management Functions 没有'似乎没有一个有用的功能来从驱动器号检索磁盘信息,只有 GetVolumeInformation 函数,我只能检索系统的串行信息,这是我不能用来在 WMI 上进行查询的值,以及磁盘标题,我也不能使用,因为多个磁盘可能具有相同的标题...
【问题讨论】:
-
驱动器号标识卷。卷可以跨越多个物理驱动器。
-
另外,一个驱动器上可以有多个卷...