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

C# 如何使用C(不是“SerialNumber”)获取磁盘ID?,c#,disk,C#,Disk,我想用C#检索硬盘的磁盘ID 我不想像大多数文章所说的那样使用“序列号”,因为它不在我的盒子上 要检查此ID,可以在windows上运行“cmd”: diskpart list disk select disk 0 detail disk 输出如下所示: HGST HTS725050A7E630 Disk ID: 1033D54D ... 在我的虚拟盒上,输出是 VBOX HARDDISK Disk ID: 22452244 磁盘ID似乎是32位整数 使用C#(

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

我不想像大多数文章所说的那样使用“序列号”,因为它不在我的盒子上

要检查此ID,可以在windows上运行“cmd”:

  diskpart
  list disk
  select disk 0
  detail disk
输出如下所示:

  HGST HTS725050A7E630
  Disk ID: 1033D54D
  ...
在我的虚拟盒上,输出是

VBOX HARDDISK
Disk ID: 22452244
磁盘ID似乎是32位整数


使用C#(使用API而不是解析cmd输出)是否也可以得到同样的结果?

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

您可以使用WMI和该类。有一个
DeviceID
和一个
SerialNumber
属性,您可能需要检查它是否包含您要查找的值。

您可以使用WMI和该类。有一个
DeviceID
和一个
SerialNumber
属性,您可能需要检查它是否包含您要查找的值。

您可以使用WMI和该类。有一个
DeviceID
和一个
SerialNumber
属性,您可能需要检查它是否包含您要查找的值。

此值存储为“签名”。你在同一个地方得到这个序列号

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

此值存储为“签名”。你在同一个地方得到这个序列号

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

此值存储为“签名”。你在同一个地方得到这个序列号

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

此值存储为“签名”。你在同一个地方得到这个序列号

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

DeviceID在所有像“\\.\PhilicalDrive0”这样的计算机上都是相同的。@LeonZeng您能枚举类的所有属性以查看它们是否包含您感兴趣的值吗?DeviceID在所有像“\\.\PhilicalDrive0”这样的计算机上都是相同的@LeonZeng您可以枚举类的所有属性以查看它们是否包含您感兴趣的值吗?DeviceID在所有计算机(如“\\。\PhilicalDrive0”)上都是相同的。@LeonZeng您可以枚举类的所有属性以查看它们是否包含您感兴趣的值吗?DeviceID在所有计算机(如“\\。\PhilicalDrive0”)上都是相同的“\\。\PhilicalDrive0“@LeonZeng您能否枚举该类的所有属性,以查看其中是否包含您感兴趣的值?当我运行您为diskpart提供的步骤时,我得到磁盘ID E3D125A4-当我运行上述代码时,我得到:E3D125A4。在15个不同的磁盘上进行了尝试,每次都得到了匹配的值。谢谢,是的。我使用工具检查它,但我没有注意到它是以十进制格式显示的。当我运行您为diskpart提供的步骤时,我得到磁盘ID E3D125A4-当我运行上面的代码时,我得到:E3D125A4。在15个不同的磁盘上进行了尝试,每次都得到了匹配的值。谢谢,是的。我使用工具检查它,但我没有注意到它是以十进制格式显示的。当我运行您为diskpart提供的步骤时,我得到磁盘ID E3D125A4-当我运行上面的代码时,我得到:E3D125A4。在15个不同的磁盘上进行了尝试,每次都得到了匹配的值。谢谢,是的。我使用工具检查它,但我没有注意到它是以十进制格式显示的。当我运行您为diskpart提供的步骤时,我得到磁盘ID E3D125A4-当我运行上面的代码时,我得到:E3D125A4。在15个不同的磁盘上进行了尝试,每次都得到了匹配的值。谢谢,是的。我用一个工具来检查它,但我没有注意到它是以十进制格式显示的。