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