Updated various commands to support agent branding

Bryan Roe committed Jan 5, 2021 at 09:47 UTC 91f33dfd73f7cfd0f5acc8c28c34a6092a01913e
1 file changed +55 -12
agents/meshcore.js
+55 -12
@@ -47,7 +47,8 @@ function createMeshCore(agent) {
47 var agentFileHttpPendingRequests = []; // Pending HTTPS GET requests from the server.
48 var debugConsole = (_MSH().debugConsole == 1);
49
50 - if (process.platform == 'win32' && require('user-sessions').isRoot()) {
50 + if (process.platform == 'win32' && require('user-sessions').isRoot())
51 + {
52 // Check the Agent Uninstall MetaData for correctness, as the installer may have written an incorrect value
53 try {
54 var writtenSize = 0, actualSize = Math.floor(require('fs').statSync(process.execPath).size / 1024);
@@ -56,10 +57,20 @@ function createMeshCore(agent) {
57 } catch (x) { }
58
59 // Check to see if we are the Installed Mesh Agent Service, if we are, make sure we can run in Safe Mode
59 - try {
60 + var svcname = process.platform == 'win32' ? 'Mesh Agent' : 'meshagent';
61 + try
62 + {
63 + svcname = require('MeshAgent').serviceName;
64 + }
65 + catch (x)
66 + {
67 + }
68 +
69 + try
70 + {
71 var meshCheck = false;
61 - try { meshCheck = require('service-manager').manager.getService('Mesh Agent').isMe(); } catch (e) { }
62 - if (meshCheck && require('win-bcd').isSafeModeService && !require('win-bcd').isSafeModeService('Mesh Agent')) { require('win-bcd').enableSafeModeService('Mesh Agent'); }
72 + try { meshCheck = require('service-manager').manager.getService(svcname).isMe(); } catch (e) { }
73 + if (meshCheck && require('win-bcd').isSafeModeService && !require('win-bcd').isSafeModeService(svcname)) { require('win-bcd').enableSafeModeService(svcname); }
74 } catch (e) { }
75 }
76
@@ -1054,6 +1065,14 @@ function createMeshCore(agent) {
1065 case 'uninstallagent':
1066 // Uninstall this agent
1067 var agentName = process.platform == 'win32' ? 'Mesh Agent' : 'meshagent';
1068 + try
1069 + {
1070 + agentName = require('MeshAgent').serviceName;
1071 + }
1072 + catch (x)
1073 + {
1074 + }
1075 +
1076 if (require('service-manager').manager.getService(agentName).isMe()) {
1077 try { diagnosticAgent_uninstall(); } catch (e) { }
1078 var js = "require('service-manager').manager.getService('" + agentName + "').stop(); require('service-manager').manager.uninstallService('" + agentName + "'); process.exit();";
@@ -3119,29 +3138,45 @@ function createMeshCore(agent) {
3138 }
3139 break;
3140 case 'safemode':
3122 - if (process.platform != 'win32') {
3141 + if (process.platform != 'win32')
3142 + {
3143 response = 'safemode only supported on Windows Platforms'
3144 }
3125 - else {
3126 - if (args['_'].length != 1) {
3145 + else
3146 + {
3147 + if (args['_'].length != 1)
3148 + {
3149 response = 'Proper usage: safemode (ON|OFF|STATUS)'; // Display usage
3150 }
3129 - else {
3130 - switch (args['_'][0].toUpperCase()) {
3151 + else
3152 + {
3153 + var svcname = process.platform == 'win32' ? 'Mesh Agent' : 'meshagent';
3154 + try
3155 + {
3156 + svcname = require('MeshAgent').serviceName;
3157 + }
3158 + catch (x)
3159 + {
3160 + }
3161 +
3162 + switch (args['_'][0].toUpperCase())
3163 + {
3164 default:
3165 response = 'Proper usage: safemode (ON|OFF|STATUS)'; // Display usage
3166 break;
3167 case 'ON':
3168 require('win-bcd').setKey('safeboot', 'Network');
3136 - require('win-bcd').enableSafeModeService('Mesh Agent');
3169 + require('win-bcd').enableSafeModeService(svcname);
3170 break;
3171 case 'OFF':
3172 require('win-bcd').deleteKey('safeboot');
3173 break;
3174 case 'STATUS':
3175 var nextboot = require('win-bcd').getKey('safeboot');
3143 - if (nextboot) {
3144 - switch (nextboot) {
3176 + if (nextboot)
3177 + {
3178 + switch (nextboot)
3179 + {
3180 case 'Network':
3181 case 'network':
3182 nextboot = 'SAFE_MODE_NETWORK';
@@ -3280,6 +3315,14 @@ function createMeshCore(agent) {
3315 }
3316 case 'uninstallagent': // Uninstall this agent
3317 var agentName = process.platform == 'win32' ? 'Mesh Agent' : 'meshagent';
3318 + try
3319 + {
3320 + agentName = require('MeshAgent').serviceName;
3321 + }
3322 + catch (x)
3323 + {
3324 + }
3325 +
3326 if (!require('service-manager').manager.getService(agentName).isMe()) {
3327 response = 'Uininstall failed, this instance is not the service instance';
3328 } else {