无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: wintoflash
打印 上一主题 下一主题

[原创] 开源的硬件信息工具nwinfo [20251204]

    [复制链接]
631#
发表于 2025-10-9 18:33:53 | 只看该作者
回复

使用道具 举报

632#
发表于 2025-10-10 08:01:20 | 只看该作者
谢谢分享
回复

使用道具 举报

633#
发表于 2025-10-13 00:46:40 | 只看该作者
请问 【PawnIO驱动为安全版本,但是不支持获取部分数据】是不支持哪些数据,AMDFamily0F.bin 这几个文件的作用,谢谢
回复

使用道具 举报

634#
发表于 2025-10-13 09:11:23 | 只看该作者
神奇的软件
回复

使用道具 举报

635#
 楼主| 发表于 2025-10-13 09:17:15 | 只看该作者
2012jiashanni 发表于 2025-10-13 00:46
请问 【PawnIO驱动为安全版本,但是不支持获取部分数据】是不支持哪些数据,AMDFamily0F.bin 这几个文件的 ...

这个问题解释起来比较复杂。

微软为了防止未经允许的提权(防病毒)或者游戏为了防止外挂,会禁止用户态程序随意读写MSR寄存器或物理内存。
因此,WinRing0/HwRwDrv/老版本CPU-Z驱动/AsIO这一类的驱动,已经或者将来会被拉黑。
但是,实现各种硬件传感器检测(CPU/SPD等)逻辑是很复杂的,把它全部封装到驱动里面,直接由驱动返回传感器数据是很难实现的,也会导致更多漏洞。对非商业软件来说,每次增加新硬件支持都花钱找微软签名也是不可接受的。
PawnIO这个驱动内置了一个脚本语言解析器,可以解析你传入的脚本,执行任意硬件读写操作。
为了满足微软的要求,它提供了两个版本。一个是有微软签名的版本,它只能执行有PawnIO驱动开发者签名的脚本。一个是未签名版本,它需要你开测试模式才能使用,可以执行任意未签名脚本。
PawnIO驱动开发者@namazso就在github上,可以免费为你的脚本签名,但前提是通过他的审核。越长、越复杂的代码越有可能出现问题,因此要把对不同设备操作的逻辑放在不同的脚本里面,以便审核和将来拉黑。
IntelMSR.bin 是读取Intel CPU MSR用的,目前支持获取温度/电压/功耗/功耗墙/频率,不支持获取倍频。
AMDFamily0F.bin 是读取AMD K8温度/MSR用的,目前只实装了读取电压。
AMDFamily10.bin 是读取AMD K10温度/MSR用的,目前只实装了读取电压/频率。
AMDFamily17.bin 是读取AMD ZenSMN/MSR用的,目前支持温度/电压/频率/功耗。
RyzenSMU.bin 是读取AMD锐龙SMU用的,用于获取功耗墙/温度,支持的型号有限。
以上所述的"支持",指的是理论上支持。AMD每代都改设计,导致难以支持AMD的所有型号。
======
另外,PawnIO驱动为GPL协议,PawnIO官方提供的脚本为LGPL协议,如果直接集成到软件内部,会导致软件被传染为GPL协议,因此只能外置。如果你想商用且内置,需要向PawnIO开发者购买许可。

驱动源码:https://github.com/namazso/PawnIO
脚本源码:https://github.com/namazso/PawnIO.Modules
回复

使用道具 举报

636#
发表于 2025-10-13 10:00:40 | 只看该作者
学习学习,感谢分享
回复

使用道具 举报

637#
发表于 2025-10-13 11:39:00 | 只看该作者
wintoflash 发表于 2025-10-13 09:17
这个问题解释起来比较复杂。

微软为了防止未经允许的提权(防病毒)或者游戏为了防止外挂,会禁止用户 ...

--GPU的获取信息内容能不能不改,我需要获取显卡ID、名称、驱动版本,谢谢
回复

使用道具 举报

638#
 楼主| 发表于 2025-10-13 13:25:23 | 只看该作者
本帖最后由 wintoflash 于 2025-10-13 13:26 编辑
2012jiashanni 发表于 2025-10-13 11:39
--GPU的获取信息内容能不能不改,我需要获取显卡ID、名称、驱动版本,谢谢

v1.5.0重写了GPU相关功能。
现在统一用 --pci=03 来获得PCI ID/驱动相关内容。https://github.com/a1ive/nwinfo/releases/tag/latest
  1. nwinfo --pci=03
  2. ---
  3. NWinfo:
  4.     Build Time: 'Oct  8 2025 11:14:24'
  5.     libnw: 'v1.5.0.0'
  6.     ...
  7.     PCI:
  8.         - Device:
  9.             HWID: 'PCI\VEN_8086&DEV_4680&SUBSYS_88821043&REV_0C'
  10.             Vendor ID: '8086'
  11.             Device ID: '4680'
  12.             Vendor: 'Intel'
  13.             Device: 'AlderLake-S GT1'
  14.             Description: 'Intel(R) UHD Graphics 770'
  15.             Driver: 'Intel(R) UHD Graphics 770'
  16.             Driver Version: '32.0.101.6987'
  17.             Driver Provider: 'Intel Corporation'
  18.             Driver Date: '2025-07-29'
  19.             Inf Path: 'oem51.inf'
  20.             Inf Section: 'iADLSD_w11_DS'
  21.             Location: 'Bus 0, Device 2, Function 0'
  22.             Class Code: '030000'
  23.             Class: 'Display controller'
  24.             Subclass: 'VGA compatible controller'
  25.             Prog IF: 'VGA controller'
  26.         - Device:
  27.             HWID: 'PCI\VEN_8086&DEV_4908&SUBSYS_D0101EF7&REV_01'
  28.             Vendor ID: '8086'
  29.             Device ID: '4908'
  30.             Vendor: 'Intel'
  31.             Device: 'DG1 [Iris Xe Graphics]'
  32.             Description: 'Intel(R) Iris(R) Xe Graphics'
  33.             Driver: 'Intel(R) Iris(R) Xe Graphics'
  34.             Driver Version: '32.0.101.6790'
  35.             Driver Provider: 'Intel Corporation'
  36.             Driver Date: '2025-04-28'
  37.             Inf Path: 'oem58.inf'
  38.             Inf Section: 'DG1_Client_FWU_wNext'
  39.             Location: 'Bus 3, Device 0, Function 0'
  40.             Class Code: '030000'
  41.             Class: 'Display controller'
  42.             Subclass: 'VGA compatible controller'
  43.             Prog IF: 'VGA controller'
复制代码

用 --gpu 从 GPU驱动获得显卡传感器信息
  1. nwinfo --gpu
  2. ---
  3. NWinfo:
  4.     Build Time: 'Oct  8 2025 11:14:24'
  5.     libnw: 'v1.5.0.0'
  6.     ...
  7.     GPU:
  8.         - Device:
  9.             Device: 'Intel(R) UHD Graphics 770'
  10.             Location: 'Bus 0, Device 2, Function 0'
  11.             GPU Utilization: '0.9%'
  12.             Temperature (C): 0.0
  13.             Total Memory: 33976709120
  14.             Free Memory: 32991043584
  15.             Memory Usage: '3%'
  16.             Power (W): 26.9
  17.             Frequency (MHz): 700.0
  18.             Voltage (V): 0.32
  19.             Fan Speed (RPM): 0
  20.         - Device:
  21.             Device: 'Intel(R) Iris(R) Xe Graphics'
  22.             Location: 'Bus 3, Device 0, Function 0'
  23.             GPU Utilization: '0.8%'
  24.             Temperature (C): 37.0
  25.             Total Memory: 4188012544
  26.             Free Memory: 3841662976
  27.             Memory Usage: '9%'
  28.             Power (W): 5.7
  29.             Frequency (MHz): 300.0
  30.             Voltage (V): 0.74
  31.             Fan Speed (RPM): 2471
复制代码

目前暂时只支持 Intel/AMD/nVidia 显卡,功能还没做完,也没有充分测试。
回复

使用道具 举报

639#
发表于 2025-10-13 14:31:56 | 只看该作者
wintoflash 发表于 2025-10-13 13:25
v1.5.0重写了GPU相关功能。
现在统一用 --pci=03 来获得PCI ID/驱动相关内容。https://github.com/a1ive ...

太棒了,我之前一直是 --PCI=03获取ID再--GPU获取驱动版本,现在只需--PCI=03就好了,谢谢大佬
回复

使用道具 举报

640#
发表于 2025-10-13 15:26:04 | 只看该作者
PawnIOx64.sys在windows 7 64位  6.1.7601.27769 下蓝屏
回复

使用道具 举报

641#
 楼主| 发表于 2025-10-13 19:12:46 | 只看该作者
2012jiashanni 发表于 2025-10-13 15:26
PawnIOx64.sys在windows 7 64位  6.1.7601.27769 下蓝屏

PawnIO不支持Win7吧。不过Win7也没必要用PawnIO啊。
回复

使用道具 举报

642#
发表于 2025-10-16 19:37:00 | 只看该作者
实用小工具,不错
回复

使用道具 举报

643#
发表于 2025-10-24 14:35:12 | 只看该作者
wintoflash 发表于 2025-10-13 13:25
v1.5.0重写了GPU相关功能。
现在统一用 --pci=03 来获得PCI ID/驱动相关内容。https://github.com/a1ive ...

你好。

nwinfo是否可以支持类似wimc命令的table格式输出,就是在一行通过分割符分开显示。这样好通过for命令取数
比如
wmic diskdrive get DeviceID, Model /format:table
可以通过get选择输出哪些列。

点评

建议配合jq.exe,非常的方便。但是,jq的查询翻译到for里面,会让你欲仙欲死的。 给你看看我的一个 jq 在 for 里面的片段: for /f "tokens=1,2 delims=|" %%a in ('curl -s "%api%" -F "key=%key%" %r  详情 回复 发表于 2025-11-27 13:18
建议配合jq.exe,非常的方便。  详情 回复 发表于 2025-11-27 13:16
输出的数据是存在多层嵌套情况的。这些情况下如何设计命令行参数呢? 比如:  详情 回复 发表于 2025-10-24 15:48
回复

使用道具 举报

644#
发表于 2025-10-24 15:26:04 | 只看该作者
谢谢您的分享!
回复

使用道具 举报

645#
 楼主| 发表于 2025-10-24 15:48:14 | 只看该作者
本帖最后由 wintoflash 于 2025-10-24 15:50 编辑
freesoft00 发表于 2025-10-24 14:35
你好。

nwinfo是否可以支持类似wimc命令的table格式输出,就是在一行通过分割符分开显示。这样好通过f ...

输出的数据是存在多层嵌套情况的。这些情况下如何设计命令行参数呢?
比如:
  1. Network:
  2.         - Interface:
  3.             Network Adapter: '{****}'
  4.             Description: 'Realtek Gaming 2.5GbE Family Controller'
  5.             Type: 'Ethernet'
  6.             MAC Address: '******************'
  7.             Status: 'Active'
  8.             DHCP Enabled: true
  9.             DHCP Server: '192.168.11.1'
  10.             Unicasts:
  11.                 - Unicast Address:
  12.                     IPv6: 'fe80::368c:666c:5ef2:c9bf'
  13.                 - Unicast Address:
  14.                     IPv4: '192.168.11.153'
  15.                     Subnet Mask: '255.255.255.0'
  16.             Gateways:
  17.                 - Gateway:
  18.                     IPv4: '192.168.11.1'
  19.             DNS Servers:
  20.                 - DNS Server:
  21.                     IPv4: '192.168.11.1'
  22.                 - DNS Server:
  23.                     IPv6: 'fe80::609d:9bff:fee3:526d'
  24.         - Interface:
  25.             Network Adapter: '{****}'
  26.             Description: 'Intel(R) Wi-Fi 6 AX201 160MHz'
  27.             Type: 'IEEE 802.11 Wireless'
  28.             MAC Address: '******************'
  29.             Status: 'Deactive'
  30.             DHCP Enabled: true
  31.             Unicasts:
  32.                 - Unicast Address:
  33.                     IPv6: 'fe80::a6a6:7b57:cdbc:2b3d'
  34.                 - Unicast Address:
  35.                     IPv4: '169.254.35.148'
  36.                     Subnet Mask: '255.255.0.0'
  37.             DNS Servers:
  38.                 - DNS Server:
  39.                     IPv4: '192.168.11.1'
复制代码

批处理对于文本处理是比较无力的。
回复

使用道具 举报

646#
发表于 2025-10-29 08:17:25 | 只看该作者
这个太强了,必须支持
回复

使用道具 举报

647#
发表于 2025-10-30 08:28:07 | 只看该作者
谢谢分享
回复

使用道具 举报

648#
发表于 2025-11-7 02:25:25 | 只看该作者
V1.5.0开始--device 参数似乎 不再支持WINXP/WIN7,仅win10、11下正常可获取,而V1.4.4则支持,是后续不再支持了吗
回复

使用道具 举报

649#
发表于 2025-11-7 14:40:29 | 只看该作者
感谢分享
回复

使用道具 举报

650#
 楼主| 发表于 2025-11-7 21:15:44 | 只看该作者
2012jiashanni 发表于 2025-11-7 02:25
V1.5.0开始--device 参数似乎 不再支持WINXP/WIN7,仅win10、11下正常可获取,而V1.4.4则支持,是后续不再支 ...

https://github.com/a1ive/nwinfo/releases/tag/latest
应该可以了。在WinXP和Win7x64里面测试过了。
回复

使用道具 举报

651#
发表于 2025-11-9 23:17:37 | 只看该作者
感谢楼主分享,太棒了
回复

使用道具 举报

652#
发表于 2025-11-10 11:57:31 | 只看该作者
感谢分享
回复

使用道具 举报

653#
发表于 2025-11-11 11:07:05 | 只看该作者
开源的硬件信息工具
回复

使用道具 举报

654#
发表于 2025-11-16 20:27:43 | 只看该作者
这是 nwinfo --sys 的片段

  1.     System:
  2.         OS: 'Windows 11 25H2'
  3.         Build Number: '10.0.26200'
  4.         UBR: 7171
  5.         Edition: 'Enterprise'
复制代码


这个Edition取自
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion
下的 CompositionEditionID 吧
好像 EditionID 更贴近实际版本。


根据恰哥的说法:
EditionID = 商业 SKU(对用户、激活、外观可见)

CompositionEditionID = 内部基础版本(决定功能层与组件组合)
是系统构建时的“基础层级”,与 SKU 不完全等价。
某些增强 SKU(如 Pro for Workstations、Enterprise)会共享同一个 CompositionEditionID。
决定系统内部 Feature Pack 组合与可升级路线。
Windows 的 UUP、DISM、WinPE 中都会参考它来判断是否能附加某些组件。
回复

使用道具 举报

655#
 楼主| 发表于 2025-11-16 21:27:32 | 只看该作者
pda8888 发表于 2025-11-16 20:27
这是 nwinfo --sys 的片段

它就是HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EditionID
https://github.com/a1ive/nwinfo/ ... b0/libnw/sys.c#L178
回复

使用道具 举报

656#
发表于 2025-11-17 13:24:42 | 只看该作者
谢谢大哥
回复

使用道具 举报

657#
发表于 2025-11-18 12:29:33 | 只看该作者
wintoflash 发表于 2025-11-16 21:27
它就是HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\EditionID
https://github.com/a1ive/nwinfo ...

但是很奇怪。你可以看看,我的注册表里的EditionID值是 ProfessionalWorkstation,是正确的。你提供的源代码178行正是取自 EditionID,可是在nwinfo --sys时,显示的却是 Enterprise,是CompositionEditionID的值。

回复

使用道具 举报

658#
 楼主| 发表于 2025-11-18 13:18:08 | 只看该作者
pda8888 发表于 2025-11-18 12:29
但是很奇怪。你可以看看,我的注册表里的EditionID值是 ProfessionalWorkstation,是正确的。你提供的源 ...


回复

使用道具 举报

659#
发表于 2025-11-18 13:22:58 | 只看该作者
本帖最后由 pda8888 于 2025-11-18 13:24 编辑

我这台24H2的确错位了。
回复

使用道具 举报

660#
 楼主| 发表于 2025-11-18 13:28:12 | 只看该作者
pda8888 发表于 2025-11-18 13:22
我这台24H2的确错位了。

你换台电脑试试。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-23 08:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表