WMI Win32_BaseBoard 序列号为空
如何在.NET中获取主板序列号? Win32_BaseBoard.SerialNumber 返回空字符串。 还有其他方法吗?
注意:我使用的是 Windows 7 Ultimate x64
How to get mainboard serialnumber in .NET?
Win32_BaseBoard.SerialNumber returns an empty string.
any other ways?
note: i'm using windows 7 ultimate x64
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你真正在寻找什么?
在我的例子中,
Win32_BaseBoard.SerialNumber
给出的结果与win32_bios.SerialNumber
或Win32_ComputerSystemProduct.IdentifyingNumber
相同。您可以使用
Win32_Processor.Win32_Processor
找到处理器 ID。What are you really looking for ?
In my case
Win32_BaseBoard.SerialNumber
gives the same result aswin32_bios.SerialNumber
, orWin32_ComputerSystemProduct.IdentifyingNumber
.You can find the processor ID with
Win32_Processor.Win32_Processor
.它适用于我的戴尔主板。根据制造商的不同,您可能会得到不同的结果——他们甚至可能不会将其暴露给 WMI。
您可以使用 WMI Explorer 查看填充的各个字段。
It works on my Dell motherboard. Depending on the manufacturer, you may get different results--they may not even be exposing this to WMI.
You can look at the various fields which are populated using WMI Explorer.
我必须对一些使用 Win32_BaseBoard/SerialNumber 属性的协议进行逆向工程。
对于早期版本的 VirtualBox,它是 <;空>在 WMI 资源管理器中,但现在它是“0”。
所以,是的,它取决于供应商。
此外,可能存在也可能不存在 Win32_BaseBoard 的实例,在我的例子中,如果 WMI 对象无法实例化,软件会插入一个预定义的常量。
最简单的方法是使用命令行查询:
I had to reverse-engineer some protocol that uses Win32_BaseBoard/SerialNumber property.
With earlier versions of VirtualBox it was < empty > in WMI Explorer, but now it is "0".
So, yes it is vendor-dependent.
Moreover, there could or could not exist an instance of Win32_BaseBoard, in my case the software inserted a pre-defined constant if the WMI object could not get instantiated.
The most hassle-free method is to query it using command-line: