如何使用C#获取磁盘ID(不是" SerialNumber")?

时间:2015-05-13 07:57:53

标签: c# disk

我想使用C#检索硬盘的磁盘ID

我不想" SerialNumber"因为大多数文章都在谈论,因为它不在我的盒子里。

要检查此 ID ,您可以运行" cmd"在Windows上:

  diskpart
  list disk
  select disk 0
  detail disk

输出如下:

  HGST HTS725050A7E630
  Disk ID: 1033D54D
  ...

在我的虚拟盒子上输出

VBOX HARDDISK
Disk ID: 22452244

磁盘ID似乎是32位整数。

无论如何使用C#获取相同的东西(使用API​​而不是解析cmd输出)?

2 个答案:

答案 0 :(得分:2)

此值存储为'签名'。你得到的是与序列号相同的地方。

ManagementObjectSearcher win32DiskDrives = new ManagementObjectSearcher("select * from Win32_DiskDrive");
foreach (ManagementObject win32DiskDrive in win32DiskDrives.Get())
{
    Console.WriteLine("{0:X}", win32DiskDrive.Properties["Signature"].Value);
}

答案 1 :(得分:1)

您可以使用WMI和Win32_DiskDrive类。有DeviceIDSerialNumber属性,您可能需要检查它是否包含您要查找的值。