我在 vmware 中运行 ubuntu。我正在尝试获取基板序列号。
var si = require("systeminformation");
console.log(si.baseboard().serial);
它返回未定义。我的代码有问题吗?或者问题是 ubuntu 在 vmware 中运行?
我在 vmware 中运行 ubuntu。我正在尝试获取基板序列号。
var si = require("systeminformation");
console.log(si.baseboard().serial);
它返回未定义。我的代码有问题吗?或者问题是 ubuntu 在 vmware 中运行?
您可以在源代码中看到systeminformation
它正在读取文件/sys/devices/virtual/dmi/id/board_serial
(如果运行dmidecode -t 2 2>/dev/null
失败)。
如果您cat /sys/devices/virtual/dmi/id/board_serial
在您的外壳中(如果它甚至存在),您会得到什么?
如果它为空或不存在,则数据不是由您的环境提供的。
要完成 AKX 答案,si.baseboard()
返回一个Promise(自v3起),因此您必须执行以下操作:
si.baseboard().then(el => console.log(el.serial))
或者,如果您想坚持使用回调语法
si.baseboard(el => { console.log(el.serial) })
请注意,如果我以普通用户身份启动脚本,它将返回一个空字符串。只有当我以 root 身份启动它时,我才能显示序列号。
我发现即使在虚拟机上我也可以使用序列号来获取唯一编号。
var serialNumber = require('serial-number');
serialNumber(function (err, value) {
console.log(value);
});