windows环境下,wmi取不到固态硬盘真实的序列号,请问有啥其他方法能取到么? | go | go 技术论坛-金年会app官方网

1. 运行环境

2. 问题描述?

windows环境下,通过wmic采集的固态硬盘序列号不准确。
是否有其他方法采集到实际序列号?
硬盘序列号

3. 您期望得到的结果?

aida获取序列号

4. 您实际得到的结果?

讨论数量: 8

file

是可以的

1个月前
(楼主) 1个月前

如果输出的 mediatype 没有明确标识为 ssd 或 hdd,可以使用以下 powershell 命令进一步检查: get-physicaldisk | select-object deviceid, mediatype, serialnumber

1个月前

楼主解决了吗?试试
wmic diskdrive get serialnumber
或者
get-wmiobject win32_physicalmedia | select-object serialnumber

我也有个硬盘序列号全是 0000_0000_0000_0000_0000_0100_0000_0000.

1个月前
(楼主) 1个月前
(作者) 1个月前

我刚研究了一下,有个开源的工具叫 smartmontools ,

你可以下载安装,把安装目录中bin目录的" smartctl " 二进制文件拿出来单独用,1m左右大小。

这个文件可以读取输出硬盘的序列号。 我的电脑一块m2 固态 一块sata固态,m2使用上述命令无法读取输出序列号,smartctl 正常读取输出。

file

1个月前

又找到一个办法。发现了一个项目:

这个是无忧论坛的wintoflash 大佬编写的,windows获取硬盘信息的,编译好的exe才78k,直接拿来用。

以管理员权限在cmd中运行这个exe,就输出硬盘的所有信息了,包括能查询的硬盘序列号。

golang用exec使用管理员权限调用这个exe,捕获输出,过滤关键词 serial就行了 。
如果你会点c或者c ,可以单独抽离出来libcdi获取序列号的方法。

用cditest.exe只输出序列号的话,用

cditest.exe | findstr “serial:”

输出硬盘名称和序列号

cditest.exe | findstr /i /c:”model:” /c:”serial:”

2周前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
网站地图