1
0
Fork 0
mirror of https://github.com/Ylianst/MeshCentral.git synced 2025-03-09 15:40:18 +00:00

Added Windows Service control in remote desktop tools

This commit is contained in:
Ylian Saint-Hilaire 2019-07-31 16:49:23 -07:00
parent 4bacd57aa5
commit ebdf55844e
15 changed files with 256 additions and 38 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -672,7 +672,9 @@ function createMeshCore(agent)
case 'ps': {
// Return the list of running processes
if (data.sessionid) {
processManager.getProcesses(function (plist) { mesh.SendCommand({ "action": "msg", "type": "ps", "value": JSON.stringify(plist), "sessionid": data.sessionid }); });
processManager.getProcesses(function (plist) {
mesh.SendCommand({ "action": "msg", "type": "ps", "value": JSON.stringify(plist), "sessionid": data.sessionid });
});
}
break;
}
@ -684,6 +686,39 @@ function createMeshCore(agent)
}
break;
}
case 'services': {
// Return the list of installed services
var services = null;
try { services = require('service-manager').manager.enumerateService(); } catch (e) { }
if (services != null) { mesh.SendCommand({ "action": "msg", "type": "services", "value": JSON.stringify(services), "sessionid": data.sessionid }); }
break;
}
case 'serviceStop': {
// Stop a service
try {
var service = require('service-manager').manager.getService(data.serviceName);
if (service != null) { service.stop(); }
} catch (e) { }
break;
}
case 'serviceStart': {
// Start a service
try {
var service = require('service-manager').manager.getService(data.serviceName);
if (service != null) { service.start(); }
} catch (e) { }
break;
}
/*
case 'serviceRestart': {
// Start a service
try {
var service = require('service-manager').manager.getService(data.serviceName);
if (service != null) { service.stop(); service.start(); }
} catch (e) { }
break;
}
*/
case 'openUrl': {
// Open a local web browser and return success/fail
MeshServerLog('Opening: ' + data.url, data);
@ -2037,6 +2072,11 @@ function createMeshCore(agent)
response = JSON.stringify(addedModules);
break;
}
case 'listservices': {
var services = require('service-manager').manager.enumerateService();
response = JSON.stringify(services, null, 1);
break;
}
case 'getscript': {
if (args['_'].length != 1) {
response = 'Proper usage: getscript [scriptNumber].';

View file

@ -672,7 +672,9 @@ function createMeshCore(agent)
case 'ps': {
// Return the list of running processes
if (data.sessionid) {
processManager.getProcesses(function (plist) { mesh.SendCommand({ "action": "msg", "type": "ps", "value": JSON.stringify(plist), "sessionid": data.sessionid }); });
processManager.getProcesses(function (plist) {
mesh.SendCommand({ "action": "msg", "type": "ps", "value": JSON.stringify(plist), "sessionid": data.sessionid });
});
}
break;
}
@ -684,6 +686,39 @@ function createMeshCore(agent)
}
break;
}
case 'services': {
// Return the list of installed services
var services = null;
try { services = require('service-manager').manager.enumerateService(); } catch (e) { }
if (services != null) { mesh.SendCommand({ "action": "msg", "type": "services", "value": JSON.stringify(services), "sessionid": data.sessionid }); }
break;
}
case 'serviceStop': {
// Stop a service
try {
var service = require('service-manager').manager.getService(data.serviceName);
if (service != null) { service.stop(); }
} catch (e) { }
break;
}
case 'serviceStart': {
// Start a service
try {
var service = require('service-manager').manager.getService(data.serviceName);
if (service != null) { service.start(); }
} catch (e) { }
break;
}
/*
case 'serviceRestart': {
// Start a service
try {
var service = require('service-manager').manager.getService(data.serviceName);
if (service != null) { service.stop(); service.start(); }
} catch (e) { }
break;
}
*/
case 'openUrl': {
// Open a local web browser and return success/fail
MeshServerLog('Opening: ' + data.url, data);
@ -2037,6 +2072,11 @@ function createMeshCore(agent)
response = JSON.stringify(addedModules);
break;
}
case 'listservices': {
var services = require('service-manager').manager.enumerateService();
response = JSON.stringify(services, null, 1);
break;
}
case 'getscript': {
if (args['_'].length != 1) {
response = 'Proper usage: getscript [scriptNumber].';