Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在没有wmi的情况下获取C或asm中的硬盘驱动器序列号_C_Windows_Assembly_Hardware Id - Fatal编程技术网

如何在没有wmi的情况下获取C或asm中的硬盘驱动器序列号

如何在没有wmi的情况下获取C或asm中的硬盘驱动器序列号,c,windows,assembly,hardware-id,C,Windows,Assembly,Hardware Id,如何在没有wmi的情况下在C或asm中获取硬盘驱动器序列号(而不是每次重新安装windows时更改的卷)(因为wmi需要管理员权限)。任何线索都是有帮助的,因为现在我在网络上找不到没有wmi的C,在搜索的日子里。。。非常感谢。 编辑:对于windows系统硬盘驱动器序列号和其他有关硬盘驱动器的信息,如固件版本等。据我所知,只能使用SMART获得,这需要到块设备节点(/dev/sda或/dev/sdb)的特殊IOCTL,而这通常对普通用户不可用 我知道有一个叫做smartctl的工具,它可以做到这

如何在没有wmi的情况下在C或asm中获取硬盘驱动器序列号(而不是每次重新安装windows时更改的卷)(因为wmi需要管理员权限)。任何线索都是有帮助的,因为现在我在网络上找不到没有wmi的C,在搜索的日子里。。。非常感谢。
编辑:对于windows系统

硬盘驱动器序列号和其他有关硬盘驱动器的信息,如固件版本等。据我所知,只能使用SMART获得,这需要到块设备节点(/dev/sda或/dev/sdb)的特殊IOCTL,而这通常对普通用户不可用

我知道有一个叫做smartctl的工具,它可以做到这一点:

sudo smartctl -i /dev/sda
还有类似的工具(hdparm、lshw等)


就试图在没有特权用户的情况下找出这些信息而言,只有通过/proc或/sys公开这些信息才有可能,我非常怀疑当前SATA块设备驱动程序中是否有这些信息。

请尝试我的开源工具DiskId32,它的源代码也位于。我现在只有Win32版本。也许有一天我会添加一个Win64版本。

我认为序列号可能被视为机密信息,因此没有管理员权限您无法获取。如果没有特权指令,您很可能无法执行此操作。@Harry:serial#因此不再在cpu上,这就是为什么现在有一个变量,但硬盘驱动器也是。。。?无论如何,即使mac add可能是假的,它仍然是一种识别计算机的可靠方法,因此是非机密的。感谢不确定的信息:至少是它的信息@丹尼尔:好的,谢谢。在Windows中,您必须使用
DeviceIoControl
,并使用ATA passthrough向驱动器发出识别命令。你现在需要在Windows$world(wmi)中使用管理员级别的访问权限linux dude,但无论如何还是要谢谢你。我不熟悉wmi,在问题中明确提到Windows会让问题更清楚:)哇,谢谢:几乎解决了我的问题。但正如您在网站上所说:“它在Windows 9X、Win NT、Win 2K和Win XP(Pro/Home)下运行”,以及“在Windows XP、Windows 2003服务器和Vista上偶尔出现问题”。。。因此,它看起来很难得到那些高清信息:为您的节目好极了!我想把它移植到w7会很长/很难?55%的操作系统现在是W7,所以…(就我自己而言,我正处于XP阻力运动中!;p)