【发布时间】:2012-02-20 18:16:03
【问题描述】:
我正在尝试获取启动驱动器的序列号,但我还没有弄清楚如何去做。
我知道分区 =\= 硬盘,但我想要启动分区的序列号。
这是我目前所拥有的:
var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
int i = 0;
foreach (ManagementObject wmi_HD in searcher.Get())
{
// get the hardware serial no.
if (wmi_HD["SerialNumber"] == null)
richTextBox1.Text += "None" + Environment.NewLine;
else
richTextBox1.Text += "Name: " + wmi_HD["Name"] + Environment.NewLine;
richTextBox1.Text += "SerialNumber: " + wmi_HD["SerialNumber"] + Environment.NewLine;
richTextBox1.Text += "MediaType: " + wmi_HD["MediaType"] + Environment.NewLine;
richTextBox1.Text += "Removable: " + wmi_HD["Removable"] + Environment.NewLine;
++i;
}
我看过这里:
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394346(v=vs.85).aspx#properties
看看我是否可以看到它是否是引导驱动器,但我什么也没看到。
除了序列号,我什么都没有返回,其他都是空白的。
这是我在上面的代码中得到的:
姓名:
序列号:5YZ01J34
媒体类型:
可移动:
如何获取引导驱动器的序列号以及上面未显示的信息?
再次感谢!
【问题讨论】:
-
在我的系统(有一个内部 SATA 硬盘)上,除了
SerialNumber和Tag之外的所有值都为 NULL;Tag是\\.\\PHYSICALDRIVE0。Win32_PhysicalMedia中没有任何信息告诉您它是否是启动盘。 (无论如何,您不会从物理媒体启动;您从位于“Win32_LogicalDisk”中的逻辑磁盘启动,但这只是列出了分区;它不会告诉您从哪个启动。您可能想要获取免费的MagWMI 组件 - 包含的演示可让您执行 WMI 查询并查看输出。 -
感谢您的意见,但我尽量避免使用任何第 3 方应用程序。如果我与他们有问题,那么我将任由他们摆布。到目前为止,我已经能够避免这样做。
-
我建议为 you 使用 MagWMI 演示来查看各种查询结果中可用的内容,而不是用于其他任何事情。这是一个非常有用(免费)的实用程序,用于测试 WMI 内容并查看它们的所有可用输出。
-
对不起,我看错了。我去看看
-
您知道这是识别机器的一种非常糟糕的方法吗?在 RAID 设置中,某些控制器会为您提供恰好可用的任何驱动器的 ID。