如何获取硬盘的序列号?

2016-05-28 08:21:01 +08:00
 arrowna
wmic 获取到到是一串数字,不是序列号,怎么办?

D:\>wmic diskdrive get serialnumber
SerialNumber
2020202057202d444d573443304d3146394c4a4e

真正的序列号应该像下面一样 ( HDTune 可以正确读取硬盘序列号)
Drive Serial Number: WD-WMC4M0F1L9NJ

为何 wmic 读到的是数字呢。。。
4902 次点击
所在节点    Windows
15 条回复
janxin
2016-05-28 08:27:16 +08:00
不明白是什么需求,你用 VC 写个程序不也能取得到吗?
arrowna
2016-05-28 08:33:10 +08:00
@janxin 用 vc 调用 wmic 命令获取到的是数字啊。。。
ghostxdy
2016-05-28 09:16:39 +08:00
将 wmic 得到的 hex 转 ascii ,我粗粗的看了一下是对应下面的 ascii
lycon
2016-05-28 09:20:25 +08:00
看排列取到的更像操作系统分配给硬件 GUID
xia0chun
2016-05-28 09:34:04 +08:00
我的可以直接获取到 ascii 码,系统是 Win7 X64

C:\>wmic diskdrive get serialnumber
SerialNumber
W -DXW196C307625
adadada
2016-05-28 09:34:59 +08:00
wmic 得到的序列号按 2 字节转换成 little endian 之后正好是 WD-WMC4M0F1L9NJ 前面补 5 个空格的 ASCII 编码。补空格应该是为了满足对齐或者固定长度的要求。
lslqtz
2016-05-28 10:10:43 +08:00
Microsoft Windows [版本 10.0.10586]
(c) 2015 Microsoft Corporation 。保留所有权利。

C:\Users\lslqtz>wmic diskdrive get serialnumber
SerialNumber
P02512123538
WD-WMAYU5712559
lslqtz
2016-05-28 10:14:00 +08:00
把取到的做个判断 开头是不是 WD ,如果不是去掉空格对比是不是 WD & W-D ,如果都不是转换一下再对比。
winterbells
2016-05-28 10:35:02 +08:00
以前央视有一个司法节目的一集叫什么门外汉与???的,就是最后通过硬盘序列号来定罪的乁(๑˙ω˙๑乁)
loading
2016-05-28 12:25:32 +08:00
@winterbells 看一下<黑客军团>,你需要电转和微波炉!
ahhui
2016-05-28 12:54:22 +08:00
使用 DeviceIoControl 查询 STORAGE_DEVICE_DESCRIPTOR 结构体。
arrowna
2016-05-28 14:18:02 +08:00
@adadada 好像不是 little edian ? 每 4 个 16 进制字符 little edian 一下,不是整体 little edian 呢:(
DesignerSkyline
2016-05-28 14:28:35 +08:00
@loading 罪恶黑名单第三季也有这个情节
adadada
2016-05-28 14:49:22 +08:00
@arrowna 可能我没表达清楚:我说的 “按 2 字节转换成 little endian ” 就是你的说的 "每 4 个 16 进制字符 little edian 一下" 的意思
arrowna
2016-05-28 19:59:37 +08:00
@adadada 为何不是按所有字节的 little endian 呢?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/281818

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX