我尝试使用wmi来获取硬盘的序列号。我做的是这个:
启动ipython并使用这种方式获取序列号:
import wmi
c = wmi.WMI()
for x in c.Win32_PhysicalMedia():
print x
结果如下:
instance of Win32_PhysicalMedia
{
SerialNumber = "2020202020202020202020205635514d385a5856";
Tag = "\\\\.\\PHYSICALDRIVE0";
};
但我的电脑是win7,我以管理员权限启动ipython并再次做同样的事情,但现在结果不同了:
instance of Win32_PhysicalMedia
{
SerialNumber = " 5VMQZ8VX";
Tag = "\\\\.\\PHYSICALDRIVE0";
};
我猜第二个结果更像是一个正确的结果。 那么有人能告诉我一个正确的方法来获取Windows上的序列号,包括XP,Vista,Win7,Win8?
我发现许多人使用CreateFileA和DeviceIoControl来获取序列号。
答案 0 :(得分:0)
>>> import binhex
>>> binascii.a2b_hex("2020202020202020202020205635514d385a5856")
' V5QM8ZXV'
备用字符被交换......看起来它们可能是相同的序列号。
答案 1 :(得分:0)
比以往任何时候都晚,我希望这对其他人有帮助。 我从不知道从哪里拿走的。
import wmi
c = wmi.WMI()
hddSerialNumber = c.Win32_PhysicalMedia()[0].wmi_property('SerialNumber').value.strip()
print(hddSerialNumber)