From fe5ff98df246fe28eaccd3032b7f28652536eaf1 Mon Sep 17 00:00:00 2001 From: Fabien Lydoire Date: Mon, 16 Jan 2023 13:56:52 +0100 Subject: [PATCH 1/4] Use PowerShell for win32 platform --- index.js | 54 +++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/index.js b/index.js index 6038599..13907c4 100644 --- a/index.js +++ b/index.js @@ -1,8 +1,8 @@ 'use strict'; -var fs = require('fs'); -var http = require('http'); -var exec = require('child_process').exec; +var fs = require('fs'); +var http = require('http'); +var exec = require('child_process').exec; var serialNumber = function (cb, cmdPrefix) { var delimiter = ': '; @@ -12,9 +12,9 @@ var serialNumber = function (cb, cmdPrefix) { var fromCache = function (error, stdout) { fs.readFile(__dirname + '/cache', function (fsErr, data) { - if (data) {data = data.toString().trim();} + if (data) { data = data.toString().trim(); } if (fsErr || !data || data.length < 2) { - attemptEC2(function() { + attemptEC2(function () { stdoutHandler(error, stdout, true); }); } else { @@ -32,9 +32,9 @@ var serialNumber = function (cb, cmdPrefix) { }; var parseResult = function (input) { - var result = input.slice(input.indexOf(delimiter) + 2).trim(); + var result = input.slice(input.indexOf(delimiter) + delimiter.length).trim(); - var isResultUseless = uselessSerials.some(function(val) { + var isResultUseless = uselessSerials.some(function (val) { return val === result; }); @@ -49,7 +49,7 @@ var serialNumber = function (cb, cmdPrefix) { var data = ''; var failHandler = function () { failCb(); - failCb = function () {}; + failCb = function () { }; }; var request = http.get( 'http://169.254.169.254/latest/meta-data/instance-id', @@ -74,29 +74,29 @@ var serialNumber = function (cb, cmdPrefix) { switch (process.platform) { - case 'win32': - delimiter = '\r\n'; - vals[0] = 'IdentifyingNumber'; - cmd = 'wmic csproduct get '; - break; + case 'win32': + delimiter = ''; + vals[0] = ''; + cmd = 'Get-CimInstance -ClassName Win32_BIOS -Property SerialNumber | Select - Object - ExpandProperty SerialNumber'; + break; - case 'darwin': - cmd = 'system_profiler SPHardwareDataType | grep '; - break; + case 'darwin': + cmd = 'system_profiler SPHardwareDataType | grep '; + break; - case 'linux': - if (process.arch === 'arm') { - vals[1] = 'Serial'; - cmd = 'cat /proc/cpuinfo | grep '; + case 'linux': + if (process.arch === 'arm') { + vals[1] = 'Serial'; + cmd = 'cat /proc/cpuinfo | grep '; - } else { - cmd = 'dmidecode -t system | grep '; - } - break; + } else { + cmd = 'dmidecode -t system | grep '; + } + break; - case 'freebsd': - cmd = 'dmidecode -t system | grep '; - break; + case 'freebsd': + cmd = 'dmidecode -t system | grep '; + break; } if (!cmd) return cb(new Error('Cannot provide serial number for ' + process.platform)); From 87a2dc63286522d19da82535c48b7b882c8737de Mon Sep 17 00:00:00 2001 From: Fabien Lydoire Date: Tue, 17 Jan 2023 21:27:42 +0100 Subject: [PATCH 2/4] Fix incorrect spaces in PowerShell command line --- index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.js b/index.js index 13907c4..c8ac0f4 100644 --- a/index.js +++ b/index.js @@ -77,7 +77,7 @@ var serialNumber = function (cb, cmdPrefix) { case 'win32': delimiter = ''; vals[0] = ''; - cmd = 'Get-CimInstance -ClassName Win32_BIOS -Property SerialNumber | Select - Object - ExpandProperty SerialNumber'; + cmd = 'Get-CimInstance -ClassName Win32_BIOS -Property SerialNumber | Select-Object -ExpandProperty SerialNumber'; break; case 'darwin': From 9979388c61e52c4bd276a497f092c8babf735612 Mon Sep 17 00:00:00 2001 From: Fabien Lydoire Date: Tue, 17 Jan 2023 21:54:08 +0100 Subject: [PATCH 3/4] Fix incorrect UUID use for win platform --- index.js | 1 + 1 file changed, 1 insertion(+) diff --git a/index.js b/index.js index c8ac0f4..7e89554 100644 --- a/index.js +++ b/index.js @@ -77,6 +77,7 @@ var serialNumber = function (cb, cmdPrefix) { case 'win32': delimiter = ''; vals[0] = ''; + vals[1] = ''; cmd = 'Get-CimInstance -ClassName Win32_BIOS -Property SerialNumber | Select-Object -ExpandProperty SerialNumber'; break; From 58d1ca6c6f5b32228f70b0cac5a3c096e2a0fde3 Mon Sep 17 00:00:00 2001 From: Fabien Lydoire Date: Wed, 18 Jan 2023 09:23:51 +0100 Subject: [PATCH 4/4] Add shell option for win platform --- index.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 7e89554..12fd71b 100644 --- a/index.js +++ b/index.js @@ -71,10 +71,12 @@ var serialNumber = function (cb, cmdPrefix) { cmdPrefix = cmdPrefix || ''; var vals = ['Serial', 'UUID']; var cmd; + var shell = {}; switch (process.platform) { case 'win32': + shell = { 'shell': 'powershell.exe' } delimiter = ''; vals[0] = ''; vals[1] = ''; @@ -104,7 +106,7 @@ var serialNumber = function (cb, cmdPrefix) { if (serialNumber.preferUUID) vals.reverse(); - exec(cmdPrefix + cmd + vals[0], function (error, stdout) { + exec(cmdPrefix + cmd + vals[0], shell, function (error, stdout) { if (error || parseResult(stdout).length > 1) { stdoutHandler(error, stdout); } else {