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