diff --git a/views/default.handlebars b/views/default.handlebars
index cc5b61c0..ced3dc21 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -4730,7 +4730,7 @@
x += '
';
x += addHtmlValue("Installation Type", '' + "Background & interactive" + ' ' + "Background only" + ' ' + "Interactive only" + ' ');
x += '
';
- x += addHtmlValue("Installation Type", '' + "Application, Connect on user request" + ' ' + "Application, Always connected" + ' ' + "System Tray, Connect on user request" + ' ' + "System Tray, Always connected" + ' ');
+ x += addHtmlValue("Installation Type", '' + "Application, Connect on user request" + ' ' + "Application, Always connected" + ' ' + "System Tray, Connect on user request" + ' ' + "System Tray, Always connected" + ' ' + "System Tray, Monitor only" + ' ');
x += '
';
// \/:*?"<>|
@@ -4762,6 +4762,11 @@
x += '' + "Assistant for Windows (.exe)" + ' ';
x += ' ';
+ // MeshCentral Assistant2
+ x += '' + "MeshCentral Assistant is a Windows tool that users can use to ask for help. Use the link below to download a version that will monitor the background agent." + '
';
+ x += '' + "Assistant for Windows (.exe)" + ' ';
+ x += '
';
+
// Windows agent uninstall
x += '' + "To remove a mesh agent, download the file below, run it and click \"uninstall\"." + '
';
x += addHtmlValue("Mesh Agent", '
' + "Windows (.exe)" + ' ');
@@ -4828,7 +4833,8 @@
QV('agins_linux_inst', v == 5);
QV('aginsSysTypeDiv', v == 5);
QV('agins_qrcode', v == 6);
- QV('agins_assistant', v == 7);
+ QV('agins_assistant', (v == 7) && (Q('asinsType').value != 4));
+ QV('agins_assistant2', (v == 7) && (Q('asinsType').value == 4));
Q('aginsbinlnk').onclick = function() { downloadFile((Q('aginsbinlnk').name.split('installflags=')[0]) + 'installflags=' + Q('aginsType').value + (urlargs.key?('&key=' + urlargs.key):'') + '&meshinstall=' + Q('aginsSysType').value); };
Q('aginsbincmd').value = (Q('aginsbincmd').value.split('&installflags=')[0]) + '&installflags=' + Q('aginsType').value + (urlargs.key?('&key=' + urlargs.key):'') + '&meshinstall=' + Q('aginsSysType').value + '\"';
QV('aginsTypeDiv', (v == 0) || (v == 5));
@@ -4839,6 +4845,7 @@
Q('aginsw64lnk').onclick = function() { downloadFile((Q('aginsw64lnk').name.split('installflags=')[0]) + 'installflags=' + Q('aginsType').value + (urlargs.key?('&key=' + urlargs.key):''), null, true); }
if (debugmode > 0) { Q('aginswmshlnk').onclick = function() { downloadFile((Q('aginswmshlnk').name.split('installflags=')[0]) + 'installflags=' + Q('aginsType').value + (urlargs.key?('&key=' + urlargs.key):''), null, true); } }
Q('asinslnk').onclick = function() { downloadFile(Q('asinslnk').name + '&ac=' + Q('asinsType').value, null, true); }
+ Q('asinslnk2').onclick = function() { downloadFile(Q('asinslnk').name + '&ac=' + Q('asinsType').value, null, true); }
}
function validateDeviceToMesh() {
diff --git a/webserver.js b/webserver.js
index 0462e9de..865d2924 100644
--- a/webserver.js
+++ b/webserver.js
@@ -4647,16 +4647,19 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
// Build the agent connection URL. If we are using a sub-domain or one with a DNS, we need to craft the URL correctly.
var xdomain = (domain.dns == null) ? domain.id : '';
if (xdomain != '') xdomain += '/';
- var meshsettings = '\r\nMeshName=' + mesh.name + '\r\nMeshType=' + mesh.mtype + '\r\nMeshID=0x' + meshidhex + '\r\nServerID=' + serveridhex + '\r\n';
- if (obj.args.lanonly != true) { meshsettings += 'MeshServer=wss://' + serverName + ':' + httpsPort + '/' + xdomain + 'agent.ashx\r\n'; } else {
- meshsettings += 'MeshServer=local\r\n';
- if ((obj.args.localdiscovery != null) && (typeof obj.args.localdiscovery.key == 'string') && (obj.args.localdiscovery.key.length > 0)) { meshsettings += 'DiscoveryKey=' + obj.args.localdiscovery.key + '\r\n'; }
+ var meshsettings = '\r\n';
+ if ((req.query.id != '10006') || (req.query.ac != '4')) {
+ meshsettings += 'MeshName=' + mesh.name + '\r\nMeshType=' + mesh.mtype + '\r\nMeshID=0x' + meshidhex + '\r\nServerID=' + serveridhex + '\r\n';
+ if (obj.args.lanonly != true) { meshsettings += 'MeshServer=wss://' + serverName + ':' + httpsPort + '/' + xdomain + 'agent.ashx\r\n'; } else {
+ meshsettings += 'MeshServer=local\r\n';
+ if ((obj.args.localdiscovery != null) && (typeof obj.args.localdiscovery.key == 'string') && (obj.args.localdiscovery.key.length > 0)) { meshsettings += 'DiscoveryKey=' + obj.args.localdiscovery.key + '\r\n'; }
+ }
+ if ((req.query.tag != null) && (typeof req.query.tag == 'string') && (obj.common.isAlphaNumeric(req.query.tag) == true)) { meshsettings += 'Tag=' + req.query.tag + '\r\n'; }
+ if ((req.query.installflags != null) && (req.query.installflags != 0) && (parseInt(req.query.installflags) == req.query.installflags)) { meshsettings += 'InstallFlags=' + parseInt(req.query.installflags) + '\r\n'; }
+ if ((domain.agentnoproxy === true) || (obj.args.lanonly == true)) { meshsettings += 'ignoreProxyFile=1\r\n'; }
+ if (obj.args.agentconfig) { for (var i in obj.args.agentconfig) { meshsettings += obj.args.agentconfig[i] + '\r\n'; } }
+ if (domain.agentconfig) { for (var i in domain.agentconfig) { meshsettings += domain.agentconfig[i] + '\r\n'; } }
}
- if ((req.query.tag != null) && (typeof req.query.tag == 'string') && (obj.common.isAlphaNumeric(req.query.tag) == true)) { meshsettings += 'Tag=' + req.query.tag + '\r\n'; }
- if ((req.query.installflags != null) && (req.query.installflags != 0) && (parseInt(req.query.installflags) == req.query.installflags)) { meshsettings += 'InstallFlags=' + parseInt(req.query.installflags) + '\r\n'; }
- if ((domain.agentnoproxy === true) || (obj.args.lanonly == true)) { meshsettings += 'ignoreProxyFile=1\r\n'; }
- if (obj.args.agentconfig) { for (var i in obj.args.agentconfig) { meshsettings += obj.args.agentconfig[i] + '\r\n'; } }
- if (domain.agentconfig) { for (var i in domain.agentconfig) { meshsettings += domain.agentconfig[i] + '\r\n'; } }
if (req.query.id == '10006') { // Assistant settings and customizations
if ((req.query.ac != null)) { meshsettings += 'AutoConnect=' + req.query.ac + '\r\n'; } // Set MeshCentral Assistant flags if needed. 0x01 = Always Connected, 0x02 = Not System Tray
if ((domain.assistantcustomization != null) && (typeof domain.assistantcustomization == 'object')) {