NWinfo 导出 Windows 硬件信息:从 JSON 报告到缺项排查
需要把电脑配置交给同事、保存升级前后的硬件记录,或者让脚本读取设备信息时,截图不一定够用。NWinfo 提供 Windows 图形界面和命令行两种入口,命令行能够按类别采集,再输出 JSON、YAML 或 HTML,适合将“这台机器有什么”整理成可检查的文件。
下面以 v1.6.7 的官方文档为依据,走一遍选程序、限制采集范围、检查输出和排查缺项的流程。重点是报告对象与参数含义,不把能生成文件当成全部硬件都已识别。
准备:程序、架构与文件夹
官方文件表区分四个入口:nwinfo.exe 和 gnwinfo.exe 对应 x64 命令行与图形程序,带 x86 的同名程序对应 x86。先确认 Windows 系统架构,再选择入口。本文命令使用 x64 的命令行文件名;使用 x86 时需要换成对应程序名。
解压后保留随附库和数据库。libcdi.dll 用于磁盘 S.M.A.R.T.,设备标识数据库用于名称识别,图形配置另有配置文件。程序可以双击,不代表这些附属内容可以随意删除;先保持包的目录结构,能少掉一类人为引入的故障。
图形程序文档支持 Windows 7 及以上,CLI 支持 Windows XP 及以上。这里要和驱动要求分开理解:完整版附带的 PawnIO 要求 Windows x64 10 1809 或以上,NVMe 相关支持则要求 Windows 10 或以上。不能拿 CLI 的最低系统版本推导出所有数据项都能在老系统读取。
第一步:只采集系统和磁盘
在程序所在目录打开 PowerShell,使用文档示例:
.\nwinfo.exe --format=json --output=report.json --cp=UTF8 --sys --disk
参数分成两组理解。前一组控制输出:JSON 格式、写入指定文件、使用 UTF8 编码;后一组选择内容:系统与磁盘。把范围写出来,有利于后面判断“缺的字段本来就没要求采集”,还是“要求了但读取不到”。
相对输出路径按当前工作目录理解。如果从别处打开终端,只补全程序路径却忘记当前目录,报告可能不会出现在你寻找的位置。检查时先确认终端位置及输出文件名,再进入硬件识别排查,避免一开始就怀疑驱动。
打开报告后核对两个层次:一是文件是否可读,二是对象是否正确。磁盘信息可能覆盖多个设备,需要按型号和容量确认自己关心的那一块。要交付给其他脚本时,还应先检查实际字段结构,再编写解析规则,不能根据界面标签臆造 JSON 键名。
若用于升级前后比对,保留两次原始报告并采用相同采集选项。这样看到字段增减时,才有条件区分设备变化和采集范围变化。温度、利用率等瞬时读数不适合当作固定配置字段对照,也不应据此推断升级带来的性能变化。
第二步:导出能直接阅读的网络清单
需要浏览器查看的报告,可以换成 HTML:
.\nwinfo.exe --format=html --output=report.html --net=active,phys,ipv4
active 排除不活动网络接口,phys 排除虚拟网络接口,ipv4 只显示 IPv4。三个条件共同决定结果,因此这条命令适合整理当前活动物理接口,不能当成“列出所有网卡”的替代写法。
如果正在分析虚拟网卡,应先检查过滤条件,而不是根据报告没有出现某接口就去重装网卡驱动。同样,未列出的 IPv6 地址是参数选择的结果,不能用来证明系统没有配置 IPv6。缩小范围和完整盘点是两项不同任务。
输出格式默认是 YAML,文档另外支持 JSON、LUA、TREE 和 HTML。日常给人阅读可选 HTML,需要后续程序处理可选 JSON;格式变化只改变表现方式,不能自动补上没有选中的采集类别。
第三步:把设备筛选写清楚
只看显示控制器时,官方给出的示例是:
.\nwinfo.exe --pci=03
这里的 03 是 PCI 设备类别码。它按设备类别缩小输出,和图形界面里查看显示器并非同一件事。前者定位总线设备,显示器的 EDID 则描述另一层信息;排查时应先说清楚要确认显示适配器,还是显示器自身信息。
磁盘选项也支持接口或对象筛选,例如文档列有 NVME、SATA、USB 等标记,以及禁用 S.M.A.R.T.、排除卷信息等选项。首次使用不必把所有标记拼进一条命令。保留能回答问题的最小范围,确认基础输出后,再依据文档增加筛选,更方便查出哪个条件改变了结果。

界面示例:图形窗口将硬件信息分区显示;示例读数不作为本文命令的运行结果。
图形程序可以帮助人工确认设备类别,CLI 负责形成可保存报告。两者分工使用时,应比较同一个设备和信息层次,不能把界面里的实时温度与另一时刻的导出值直接当成采集误差。
缺项排查:先定位依赖
无驱动时程序仍可运行,部分硬件数据则不可访问。CPU 温度等 MSR 传感器、SPD 和 IMC 读取涉及驱动;显卡相关信息需要显卡驱动及对应 API。遇到缺项,先记录缺的是型号、接口、健康状态还是传感器,再查相应前提。
程序查找驱动的顺序为 CPUZ162、NwHwIo、PawnIO。完整版包含 PawnIO,Lite 包含 NwHwIo。这是选包时的重要差别,不能把 Lite 简化成“功能完全相同、只少几个文件”。是否安装或使用低层驱动,应按当前系统和需要读取的数据决定。
SPD 选项另有可能损坏硬件的明确警告。做常规配置采集时,不建议将它加入通用命令模板;如果只是为了写一份设备概览,可先使用其他已能读取的信息。不要用“只读信息”这个名称推断所有底层访问都没有风险。
传感器提供方也有独立条件:HWiNFO 共享内存需要对应程序运行且共享数据可用,GPU-Z 共享内存也需要 GPU-Z 运行。工具列出提供方名称,和该提供方当前可用,不能画等号。排查时把程序是否运行、数据是否可用分别记录。
README 将直接采集、不依赖 WMI 作为特点,但 S.M.A.R.T. 详细选项的默认功能仍列有 WMI。故障记录最好注明实际采集类别与参数,不要用“完全不碰 WMI”来预设排障结论。
外发与验收
--hide-sensitive 用于隐藏 MAC 和序列号。准备把报告交给他人时,可以使用这个选项,再检查输出全文是否仍有不需要的网络或系统细节。它不是对任意敏感信息的自动审核,也不能替代限制采集范围。
一次采集的验收,可以依次看文件位置、格式能否读取、类别是否齐全、设备对象是否正确,以及缺项是否有已知依赖。记录软件版本和系统环境,能让接收者判断报告的解释范围;不要只说“导出成功”,却不给出采集了什么。
v1.6.7 更新了 libcdi、Nuklear、PawnIO 模块和 JEP-106 厂商标识,并加固 Direct3D 特性级别探测。遇到版本相关问题时应带上具体版本与参数,不能从更新条目直接推断当前机器的问题一定修复。
项目参考:a1ive/nwinfo。
下载与获取
百度网盘:https://pan.baidu.com/s/1_YMJXSYQlmbmquoumXKzQA?pwd=n5ie 提取码:n5ie
夸克网盘:https://pan.quark.cn/s/6d7dea88f5d6
本文基于NWinfo v1.6.7,详解Windows平台下通过命令行采集系统、磁盘、网络及PCI设备等硬件信息的标准化流程,涵盖JSON/YAML/HTML多格式导出、采集范围控制、输出验证及缺项根因分析。重点说明驱动依赖(PawnIO/NwHwIo/CPUZ162)、S.M.A.R.T./SPD/传感器读取前提、WMI非完全规避特性,以及版本、架构与过滤参数对结果的影响。
80

被折叠的 条评论
为什么被折叠?



