《提问的智慧》,高水平的讨论,需要大家一起维护。不遵循规范会 。"> 问答 / 127 / 8 /
windows环境下,通过wmic采集的固态硬盘序列号不准确。是否有其他方法采集到实际序列号?
是可以的
如果输出的 mediatype 没有明确标识为 ssd 或 hdd,可以使用以下 powershell 命令进一步检查: get-physicaldisk | select-object deviceid, mediatype, serialnumber
楼主解决了吗?试试wmic diskdrive get serialnumber或者get-wmiobject win32_physicalmedia | select-object serialnumber
我也有个硬盘序列号全是 0000_0000_0000_0000_0000_0100_0000_0000.
我刚研究了一下,有个开源的工具叫 smartmontools ,
你可以下载安装,把安装目录中bin目录的" smartctl " 二进制文件拿出来单独用,1m左右大小。
这个文件可以读取输出硬盘的序列号。 我的电脑一块m2 固态 一块sata固态,m2使用上述命令无法读取输出序列号,smartctl 正常读取输出。
又找到一个办法。发现了一个项目:
这个是无忧论坛的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:”
我要举报该,理由是:
是可以的
如果输出的 mediatype 没有明确标识为 ssd 或 hdd,可以使用以下 powershell 命令进一步检查: get-physicaldisk | select-object deviceid, mediatype, serialnumber
楼主解决了吗?试试
wmic diskdrive get serialnumber
或者
get-wmiobject win32_physicalmedia | select-object serialnumber
我也有个硬盘序列号全是 0000_0000_0000_0000_0000_0100_0000_0000.
我刚研究了一下,有个开源的工具叫 smartmontools ,
你可以下载安装,把安装目录中bin目录的" smartctl " 二进制文件拿出来单独用,1m左右大小。
这个文件可以读取输出硬盘的序列号。 我的电脑一块m2 固态 一块sata固态,m2使用上述命令无法读取输出序列号,smartctl 正常读取输出。
又找到一个办法。发现了一个项目:
这个是无忧论坛的wintoflash 大佬编写的,windows获取硬盘信息的,编译好的exe才78k,直接拿来用。
以管理员权限在cmd中运行这个exe,就输出硬盘的所有信息了,包括能查询的硬盘序列号。
golang用exec使用管理员权限调用这个exe,捕获输出,过滤关键词 serial就行了 。
如果你会点c或者c ,可以单独抽离出来libcdi获取序列号的方法。
用cditest.exe只输出序列号的话,用
输出硬盘名称和序列号