繁体   English   中英

使用WMI获取制造商序列号的系统硬盘

[英]Getting manufacturer serialnumber of system harddrive with WMI

我想在我的c ++项目中使用WMI获取系统硬盘的制造商序列号。

我已经能够从Win32_DiskDrive类中查询SerialNumber。 但是,这会返回四个序列号,因为我有四个硬盘。 我只想知道系统盘的硬盘序列号,但我无法格式化正确的查询。

以前做过这个的人都知道如何构建这个查询?

为了让您的系统硬盘驱动器 ,首先你要找出哪些硬盘握着你的系统分区


使用Win32_DiskPartition检索DiskIndex属性并使用它来查询Win32_DiskDrive及其Index属性。

两者都是Uint32

本SO答案描述了一种检索与卷关联的DiskDrives的方法。

TechNet上的“我如何关联逻辑驱动器和物理驱动器”可能会有所帮助。

首先,您必须弄清楚什么是您的SystemDrive ,然后查询其他WMI表以获取serialNumber WMI在许多表中保留序列号,您必须更好地选择哪个表可以满足您的用例。 如果serialNumber是你唯一的用例然后查询Win32_LogicalDisk ,如果没有,写一个评论,我们可以从那里工作:)

Select SystemDrive  from Win32_OperatingSystem

Select VolumeSerialNumber  FROM Win32_LogicalDisk where (DriveType = '2' or DriveType = '3') AND deviceid= '<SystemDrive>'

更新

Select  Index from Win32_DiskPartition where BootPartition ='TRUE'
Select  SerialNumber from Win32_DiskDrive where index='<Index>'

注意:为几台机器进行干运行。

1.GetSystemDirectory()获取系统分区。例如,C:\\ Windows \\ System32和C:是系统分区。

2.从Win32_DiskPartition获取系统分区的DiskIndex

3.从Win32_DiskDrive获取SerialNumber,DiskIndex是第2步

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM