-1

我在 vmware 中运行 ubuntu。我正在尝试获取基板序列号。

var si = require("systeminformation");
console.log(si.baseboard().serial);

它返回未定义。我的代码有问题吗?或者问题是 ubuntu 在 vmware 中运行?

4

3 回答 3

0

您可以在源代码中看到systeminformation它正在读取文件/sys/devices/virtual/dmi/id/board_serial(如果运行dmidecode -t 2 2>/dev/null失败)。

如果您cat /sys/devices/virtual/dmi/id/board_serial在您的外壳中(如果它甚至存在),您会得到什么?

如果它为空或不存在,则数据不是由您的环境提供的。

于 2019-03-22T08:32:50.173 回答
0

要完成 AKX 答案,si.baseboard()返回一个Promise(自v3起),因此您必须执行以下操作:

si.baseboard().then(el => console.log(el.serial))

或者,如果您想坚持使用回调语法

si.baseboard(el => { console.log(el.serial) })

请注意,如果我以普通用户身份启动脚本,它将返回一个空字符串。只有当我以 root 身份启动它时,我才能显示序列号。

于 2019-03-22T09:05:53.333 回答
0

我发现即使在虚拟机上我也可以使用序列号来获取唯一编号。

var serialNumber = require('serial-number');

serialNumber(function (err, value) {
 console.log(value);
});
于 2019-03-22T10:34:41.650 回答