繁体   English   中英

在Windows XP上无法获取物理磁盘序列号

[英]Getting Physical Disks serial number doesn't work on windows XP

我正在尝试使用C#和WMI获取物理磁盘序列号

var searcher = new ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia");
foreach (ManagementObject mo in searcher.Get())
{
    Console.WriteLine("Serial: {0}", mo["SerialNumber"]);
}

这段代码显示了HDD和闪存可移动棒的所有序列号,但是它无法在Windows XP上获取闪存可移动磁盘,并为我提供了可移动磁盘的空值,但正确获得了HDD序列号。 任何想法有什么问题吗?

我的想法是Windows XP需要更新,任何人都知道需要什么更新? 我需要特定的更新才能将其包含在我的软件中。

还有其他原因导致这种情况发生吗?

据我所知,即使代码正确完成,也不能保证存储设备将报告序列号。 过去,我研究了一些许可代码,并且在使用WMI时在各种环境中遇到了类似的问题。 以我的经验,使用低级API调用要可靠得多(但是要进行更多的编码/测试),但是即使那样,也不能保证您会获得序列号。

您可能会遇到问题的某些环境(不是完整列表):

  • Windows XP
  • 虚拟机
  • SATA驱动器
  • 各种其他设备将自己显示为HDD,但实际上不是
  • 等等

您可以在Code Project上查看此文章 ,看看它是否对您更好。

如果您尝试通过某种许可解决方案来执行此操作,则可能需要考虑获取更多的硬件信息,这样,如果缺少一条信息,您仍然可以进行其他操作。 欺骗HDD序列号也值得一读。

暂无
暂无

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

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