wmic refactoring (windows codepage issues) system.js

This commit is contained in:
Sebastian Hildebrandt 2021-10-17 18:29:10 +02:00
parent e214f3297c
commit 0a25f008ce

View File

@ -381,13 +381,13 @@ function system(callback) {
break;
}
}
util.wmic('/namespace:\\\\root\\wmi path MS_SystemInformation get /value').then((stdout, error) => {
util.powerShell('Get-WmiObject MS_Systeminformation -Namespace "root/wmi" | fl *').then((stdout, error) => {
if (!error) {
let lines = stdout.split('\r\n');
result.sku = util.getValue(lines, 'systemsku', ':');
}
if (!result.virtual) {
util.wmic('bios get Version, SerialNumber, SMBIOSBIOSVersion').then((stdout, error) => {
util.powerShell('Get-WmiObject Win32_bios | select Version, SerialNumber, SMBIOSBIOSVersion').then((stdout, error) => {
if (!error) {
let lines = stdout.toString();
if (lines.indexOf('VRTUAL') >= 0 || lines.indexOf('A M I ') >= 0 || lines.indexOf('VirtualBox') >= 0 || lines.indexOf('VMWare') >= 0 || lines.indexOf('Xen') >= 0) {
@ -517,27 +517,27 @@ function bios(callback) {
}
if (_windows) {
try {
util.wmic('bios get /value').then((stdout, error) => {
util.powerShell('Get-WmiObject Win32_bios | fl *').then((stdout, error) => {
if (!error) {
let lines = stdout.toString().split('\r\n');
const description = util.getValue(lines, 'description', '=');
const description = util.getValue(lines, 'description', ':');
if (description.indexOf(' Version ') !== -1) {
// ... Phoenix ROM BIOS PLUS Version 1.10 A04
result.vendor = description.split(' Version ')[0].trim();
result.version = description.split(' Version ')[1].trim();
} else if (description.indexOf(' Ver: ') !== -1) {
// ... BIOS Date: 06/27/16 17:50:16 Ver: 1.4.5
result.vendor = util.getValue(lines, 'manufacturer', '=');
result.vendor = util.getValue(lines, 'manufacturer', ':');
result.version = description.split(' Ver: ')[1].trim();
} else {
result.vendor = util.getValue(lines, 'manufacturer', '=');
result.version = util.getValue(lines, 'version', '=');
result.vendor = util.getValue(lines, 'manufacturer', ':');
result.version = util.getValue(lines, 'version', ':');
}
result.releaseDate = util.getValue(lines, 'releasedate', '=');
result.releaseDate = util.getValue(lines, 'releasedate', ':');
if (result.releaseDate.length >= 10) {
result.releaseDate = result.releaseDate.substr(0, 4) + '-' + result.releaseDate.substr(4, 2) + '-' + result.releaseDate.substr(6, 2);
}
result.revision = util.getValue(lines, 'buildnumber', '=');
result.revision = util.getValue(lines, 'buildnumber', ':');
}
if (callback) { callback(result); }
@ -672,29 +672,29 @@ function baseboard(callback) {
if (_windows) {
try {
const workload = [];
workload.push(util.wmic('baseboard get /value'));
workload.push(util.wmic('memphysical get MaxCapacity, MemoryDevices /value'));
workload.push(util.powerShell('Get-WmiObject Win32_baseboard | fl *'));
workload.push(util.powerShell('Get-WmiObject Win32_physicalmemoryarray | select MaxCapacity, MemoryDevices | fl'));
util.promiseAll(
workload
).then(data => {
let lines = data.results[0] ? data.results[0].toString().split('\r\n') : [''];
result.manufacturer = util.getValue(lines, 'manufacturer', '=');
result.model = util.getValue(lines, 'model', '=');
result.manufacturer = util.getValue(lines, 'manufacturer', ':');
result.model = util.getValue(lines, 'model', ':');
if (!result.model) {
result.model = util.getValue(lines, 'product', '=');
result.model = util.getValue(lines, 'product', ':');
}
result.version = util.getValue(lines, 'version', '=');
result.serial = util.getValue(lines, 'serialnumber', '=');
result.assetTag = util.getValue(lines, 'partnumber', '=');
result.version = util.getValue(lines, 'version', ':');
result.serial = util.getValue(lines, 'serialnumber', ':');
result.assetTag = util.getValue(lines, 'partnumber', ':');
if (!result.assetTag) {
result.assetTag = util.getValue(lines, 'sku', '=');
result.assetTag = util.getValue(lines, 'sku', ':');
}
// memphysical
lines = data.results[1] ? data.results[1].toString().split('\r\n') : [''];
result.memMax = util.toInt(util.getValue(lines, 'MaxCapacity', '=')) || null;
result.memSlots = util.toInt(util.getValue(lines, 'MemoryDevices', '=')) || null;
result.memMax = util.toInt(util.getValue(lines, 'MaxCapacity', ':')) || null;
result.memSlots = util.toInt(util.getValue(lines, 'MemoryDevices', ':')) || null;
if (callback) { callback(result); }
resolve(result);
@ -805,18 +805,18 @@ function chassis(callback) {
}
if (_windows) {
try {
util.wmic('path Win32_SystemEnclosure get /value').then((stdout, error) => {
util.powerShell('Get-WmiObject Win32_SystemEnclosure | fl *').then((stdout, error) => {
if (!error) {
let lines = stdout.toString().split('\r\n');
result.manufacturer = util.getValue(lines, 'manufacturer', '=');
result.model = util.getValue(lines, 'model', '=');
const ctype = parseInt(util.getValue(lines, 'ChassisTypes', '=').replace(/\D/g, ''));
result.manufacturer = util.getValue(lines, 'manufacturer', ':');
result.model = util.getValue(lines, 'model', ':');
const ctype = parseInt(util.getValue(lines, 'ChassisTypes', ':').replace(/\D/g, ''));
result.type = (ctype && !isNaN(ctype) && ctype < chassisTypes.length) ? chassisTypes[ctype - 1] : '';
result.version = util.getValue(lines, 'version', '=');
result.serial = util.getValue(lines, 'serialnumber', '=');
result.assetTag = util.getValue(lines, 'partnumber', '=');
result.sku = util.getValue(lines, 'sku', '=');
result.version = util.getValue(lines, 'version', ':');
result.serial = util.getValue(lines, 'serialnumber', ':');
result.assetTag = util.getValue(lines, 'partnumber', ':');
result.sku = util.getValue(lines, 'sku', ':');
if (result.manufacturer.toLowerCase().indexOf('o.e.m.') !== -1) { result.manufacturer = '-'; }
if (result.version.toLowerCase().indexOf('o.e.m.') !== -1) { result.version = '-'; }
if (result.serial.toLowerCase().indexOf('o.e.m.') !== -1) { result.serial = '-'; }