问答 / 130 / 8 / 创建于 4个月前
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 ,www.smartmontools.org/wiki/Downloa...
你可以下载安装,把安装目录中bin目录的" smartctl " 二进制文件拿出来单独用,1M左右大小。
这个文件可以读取输出硬盘的序列号。 我的电脑一块m2 固态 一块sata固态,m2使用上述命令无法读取输出序列号,smartctl 正常读取输出。
又找到一个办法。发现了一个项目:github.com/a1ive/libcdi
这个是无忧论坛的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 ,www.smartmontools.org/wiki/Downloa...
你可以下载安装,把安装目录中bin目录的" smartctl " 二进制文件拿出来单独用,1M左右大小。
这个文件可以读取输出硬盘的序列号。 我的电脑一块m2 固态 一块sata固态,m2使用上述命令无法读取输出序列号,smartctl 正常读取输出。
又找到一个办法。发现了一个项目:github.com/a1ive/libcdi
这个是无忧论坛的wintoflash 大佬编写的,windows获取硬盘信息的,编译好的exe才78k,直接拿来用。
以管理员权限在cmd中运行这个exe,就输出硬盘的所有信息了,包括能查询的硬盘序列号。
golang用exec使用管理员权限调用这个exe,捕获输出,过滤关键词 Serial就行了 。
如果你会点c或者c++,可以单独抽离出来libcdi获取序列号的方法。
用cditest.exe只输出序列号的话,用
输出硬盘名称和序列号