diff --git a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.application b/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.application
deleted file mode 100644
index b4fd68f7..00000000
--- a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.application
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if9WtevNlSBME9d6o47qi4WyeA2qvfYCadGZE2TrODI=
-
-
-
-Gzby5M48N18Q7i/Eg9XYaB/79Hg=rnoXLX3OtcaDXfOZ02lqFGC8bcU+MK79Hv+Qo2pVDDgs9DuFx+BidU80czJmhBwJc/rASaDMVNLF8HiN5p+4QHpCtXtaeBAW5gvCaUitAsJBmNrG+7jQk4BYRbjJHa+gD+6c1Ya9OKgyKG0KZjvrlT1rg7kdDO0RE8Is0vG85/HG4tLrjCFGgP1acp9qWE+sKvkGBcU2ei8DtsRH6/LQ3HRfDFWpnk47f6Q/rQl2AQYxl6gpZPRbmKkmANvul0X3cLm/XbN1K9DCycHwHe9XBJ8DL1GiNdFfJVBy92gepSezFSu4GXgbPbgEQ5hPxtyRSN8N3EQRTSWAn4Mi01U+Qw==wroCIKvsY8JniSorSgYaU48PzB9id1png9IjbcLAPGGNJDT57ML8N8+OGCR/XNZlpFgAduA5SZlgeLuUO3DGk6XdxEEi+7i85YyC9BHlmVNi82GMJKN9hdcNE6nxf0mrXJRpR2X8j11UzD0ckpVbFZPq/3YnYIB7ZAkmDUsUgA/uWuhodrMp3DMePzGGA5Bhv3J/Cxh8N/1eCS9z8Ou8Fo/TWTsnWqhU3oaqJ63UHQ4GFiTY4NnQTp7124PT/MWI+mMxEDczi2cTkGklBwzBmCcu42AOkEY4lfrbILKPX12fnBILNttJQYol+pFiIzTdFa57uXaLTlDZ6m+4SjhT6w==AQABCN=meshcommander.com, O=Open Source, C=USQKqKE5fGTj7jD6B+w9fuZLY4zr4=ffs9WakqTJ4POL4qvPSQO2PtOGntrIzQp4JiOl6xYW3PJ1cQV+ZryZZQ3fbEh1g0ATSLYu1LkBXO1tAXWA2cdwgTSeJOSEUok8FfNQLa5hBZYbb+PwaDUTqW+TQv5pW3IBIFF+4QKpOJMA2IVE/Cife2YqWohNE3wX2sHBN2aze4DoUU18piF3gf7MBZWq4WqoDdt3hc/YodiFqkNeaWRqJ8xA2Q74tC1SuJZ2TNCQvGCF8odjyCSTkZ0GjwD9s1nnnhM3KUefSDCtL13QPAIaWO+5WrwcojHuOmvgqCkOddPyCWaoyLhdCsuVjr0BH0Fjgljrpg8D36cyHCuVsCTw==wroCIKvsY8JniSorSgYaU48PzB9id1png9IjbcLAPGGNJDT57ML8N8+OGCR/XNZlpFgAduA5SZlgeLuUO3DGk6XdxEEi+7i85YyC9BHlmVNi82GMJKN9hdcNE6nxf0mrXJRpR2X8j11UzD0ckpVbFZPq/3YnYIB7ZAkmDUsUgA/uWuhodrMp3DMePzGGA5Bhv3J/Cxh8N/1eCS9z8Ou8Fo/TWTsnWqhU3oaqJ63UHQ4GFiTY4NnQTp7124PT/MWI+mMxEDczi2cTkGklBwzBmCcu42AOkEY4lfrbILKPX12fnBILNttJQYol+pFiIzTdFa57uXaLTlDZ6m+4SjhT6w==AQABMIIC+jCCAeICCQDiTk4zPcm5fTANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGEwJVUzEUMBIGA1UECgwLT3BlbiBTb3VyY2UxGjAYBgNVBAMMEW1lc2hjb21tYW5kZXIuY29tMB4XDTE5MDUyOTIxNDIwMloXDTM5MDUyNDIxNDIwMlowPzELMAkGA1UEBhMCVVMxFDASBgNVBAoMC09wZW4gU291cmNlMRowGAYDVQQDDBFtZXNoY29tbWFuZGVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMK6AiCr7GPCZ4kqK0oGGlOPD8wfYndaZ4PSI23CwDxhjSQ0+ezC/DfPjhgkf1zWZaRYAHbgOUmZYHi7lDtwxpOl3cRBIvu4vOWMgvQR5ZlTYvNhjCSjfYXXDROp8X9Jq1yUaUdl/I9dVMw9HJKVWxWT6v92J2CAe2QJJg1LFIAP7lroaHazKdwzHj8xhgOQYb9yfwsYfDf9Xgkvc/DrvBaP01k7J1qoVN6Gqiet1B0OBhYk2ODZ0E6e9duD0/zFiPpjMRA3M4tnE5BpJQcMwZgnLuNgDpBGOJX62yCyj19dn5wSCzbbSUGKJfqRYiM03RWue7l2i05Q2epvuEo4U+sCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEANBww5pVulxefbTTvqe1O64kExXbcv2WsVU98o2zDZgw2wsYvbeHXeRGNvtjFllIewrGQbyfDxGgY5Nqo2H1xD6/T8VksOLTbMfj8Qc5gtCu/DuW0JhdnLOwlXyoFqG83Ym9vaIfMd8J/5EkuvmAUvxoFw4uv+UYu+HUSQM2+1zdexn+rzNR8co/IOGNx2bDxQ1XYa7P3myhhM6/jdH40eSmJhvJxDH3nYxfV8CLNYPgj0DX335Tc28k9GHa8h9tNr0hPRoV/2jSpi9EE+x2lDENZrCCMw8D73UUq55OR+KSu4YbxyfvPrZmsFkft/Xeihay8IT1QYyWgWG0dbCHm4Q==
\ No newline at end of file
diff --git a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.config.deploy b/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.config.deploy
deleted file mode 100644
index 3f1c1821..00000000
--- a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.config.deploy
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- False
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.deploy b/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.deploy
deleted file mode 100644
index 66bc49c2..00000000
Binary files a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.deploy and /dev/null differ
diff --git a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.manifest b/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.manifest
deleted file mode 100644
index 73e25893..00000000
--- a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.exe.manifest
+++ /dev/null
@@ -1,177 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- pjiT63g9OFJUGKkmY1qgx3fG5nZ4aJF6VW2rqftTu4w=
-
-
-
-
-
-
-
-
-
- UylUFD4/o0KBti+5/eodTDgq4BkUJD0J0aUXNd3yHbY=
-
-
-
-
-
-
-
-
- mkjbDQuo7YXa8wZxdKEu/ECXrORwwtpRgNj8NBKbzHo=
-
-
-
-
-
-
-
-
-
-rdudBjT8d/St+qhe7mR9ZBW9kwQ=viMGsfeyoE91nA17ahh/J6R0+Yo3a1QiIsZguo1xY39K2u2Xfs9+RBBMdS1tFmsIAJXDeM8Us1WuZKZPQ87SmzNA/jow/8Z95WXAzjLIe7kgc0oductj0PuKoF2m/LJpXB/zxTspvQfC5i7wKv7rz9YBXXP6PZkJB3yfUYFHFj9gGuF43SLi6ZvO6qsd196ED0XmYK0mX0vv9ffduOAzSE/EI7jlDv2rfcILKnDvCfvQjQtA24qGENdMHFqvwFk+WqLKKJHKCAD2NOLRhBGgg68MvwVeOBqQYvEL8DczRuIKWv6TdPSY4aCWbXRmkYypGJTO0clRkiuDZGSVkdgL/Q==wroCIKvsY8JniSorSgYaU48PzB9id1png9IjbcLAPGGNJDT57ML8N8+OGCR/XNZlpFgAduA5SZlgeLuUO3DGk6XdxEEi+7i85YyC9BHlmVNi82GMJKN9hdcNE6nxf0mrXJRpR2X8j11UzD0ckpVbFZPq/3YnYIB7ZAkmDUsUgA/uWuhodrMp3DMePzGGA5Bhv3J/Cxh8N/1eCS9z8Ou8Fo/TWTsnWqhU3oaqJ63UHQ4GFiTY4NnQTp7124PT/MWI+mMxEDczi2cTkGklBwzBmCcu42AOkEY4lfrbILKPX12fnBILNttJQYol+pFiIzTdFa57uXaLTlDZ6m+4SjhT6w==AQABCN=meshcommander.com, O=Open Source, C=US/qnG2T8hvj5RjyxbDwZGHtTo3Ys=lj6ZZ4ORr5bQCJsnKvHEml8AhDiLeJ8J/QjhrZlse8pKrurX16XuT2IH/z9Ov7qJfkvXDVblqIbKkr5P+eQUN69KcFkuUFGyUzNe2LGX8K5KC9S9AbTTGl2qw+GfLTNF6em8QWLz2Ul2CMyhv2Oz4Al/odJ59Dhf240iKf7CIonCWedShJoHrOrOPnCNg3Y/+/8yUVd6Obur7CoZ8V5C38fjlcJZO061CJ9z4qkWIf6oFh7B4ebxpX7ykjDJvIoMTJ55MirPw6eCg/b+zIFXBkqBmWp3eq1JDyW7dG9+kYfxiqE70BZTIn0GgN2tcsv5+a4F3zJN0n7RXQ2cQf4eQw==wroCIKvsY8JniSorSgYaU48PzB9id1png9IjbcLAPGGNJDT57ML8N8+OGCR/XNZlpFgAduA5SZlgeLuUO3DGk6XdxEEi+7i85YyC9BHlmVNi82GMJKN9hdcNE6nxf0mrXJRpR2X8j11UzD0ckpVbFZPq/3YnYIB7ZAkmDUsUgA/uWuhodrMp3DMePzGGA5Bhv3J/Cxh8N/1eCS9z8Ou8Fo/TWTsnWqhU3oaqJ63UHQ4GFiTY4NnQTp7124PT/MWI+mMxEDczi2cTkGklBwzBmCcu42AOkEY4lfrbILKPX12fnBILNttJQYol+pFiIzTdFa57uXaLTlDZ6m+4SjhT6w==AQABMIIC+jCCAeICCQDiTk4zPcm5fTANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGEwJVUzEUMBIGA1UECgwLT3BlbiBTb3VyY2UxGjAYBgNVBAMMEW1lc2hjb21tYW5kZXIuY29tMB4XDTE5MDUyOTIxNDIwMloXDTM5MDUyNDIxNDIwMlowPzELMAkGA1UEBhMCVVMxFDASBgNVBAoMC09wZW4gU291cmNlMRowGAYDVQQDDBFtZXNoY29tbWFuZGVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMK6AiCr7GPCZ4kqK0oGGlOPD8wfYndaZ4PSI23CwDxhjSQ0+ezC/DfPjhgkf1zWZaRYAHbgOUmZYHi7lDtwxpOl3cRBIvu4vOWMgvQR5ZlTYvNhjCSjfYXXDROp8X9Jq1yUaUdl/I9dVMw9HJKVWxWT6v92J2CAe2QJJg1LFIAP7lroaHazKdwzHj8xhgOQYb9yfwsYfDf9Xgkvc/DrvBaP01k7J1qoVN6Gqiet1B0OBhYk2ODZ0E6e9duD0/zFiPpjMRA3M4tnE5BpJQcMwZgnLuNgDpBGOJX62yCyj19dn5wSCzbbSUGKJfqRYiM03RWue7l2i05Q2epvuEo4U+sCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEANBww5pVulxefbTTvqe1O64kExXbcv2WsVU98o2zDZgw2wsYvbeHXeRGNvtjFllIewrGQbyfDxGgY5Nqo2H1xD6/T8VksOLTbMfj8Qc5gtCu/DuW0JhdnLOwlXyoFqG83Ym9vaIfMd8J/5EkuvmAUvxoFw4uv+UYu+HUSQM2+1zdexn+rzNR8co/IOGNx2bDxQ1XYa7P3myhhM6/jdH40eSmJhvJxDH3nYxfV8CLNYPgj0DX335Tc28k9GHa8h9tNr0hPRoV/2jSpi9EE+x2lDENZrCCMw8D73UUq55OR+KSu4YbxyfvPrZmsFkft/Xeihay8IT1QYyWgWG0dbCHm4Q==
\ No newline at end of file
diff --git a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.ico.deploy b/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.ico.deploy
deleted file mode 100644
index 6c82eccb..00000000
Binary files a/public/clickonce/minirouter/Application Files/MeshMiniRouter_2_0_0_29/MeshMiniRouter.ico.deploy and /dev/null differ
diff --git a/public/clickonce/minirouter/MeshMiniRouter.application b/public/clickonce/minirouter/MeshMiniRouter.application
deleted file mode 100644
index b4fd68f7..00000000
--- a/public/clickonce/minirouter/MeshMiniRouter.application
+++ /dev/null
@@ -1,116 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- if9WtevNlSBME9d6o47qi4WyeA2qvfYCadGZE2TrODI=
-
-
-
-Gzby5M48N18Q7i/Eg9XYaB/79Hg=rnoXLX3OtcaDXfOZ02lqFGC8bcU+MK79Hv+Qo2pVDDgs9DuFx+BidU80czJmhBwJc/rASaDMVNLF8HiN5p+4QHpCtXtaeBAW5gvCaUitAsJBmNrG+7jQk4BYRbjJHa+gD+6c1Ya9OKgyKG0KZjvrlT1rg7kdDO0RE8Is0vG85/HG4tLrjCFGgP1acp9qWE+sKvkGBcU2ei8DtsRH6/LQ3HRfDFWpnk47f6Q/rQl2AQYxl6gpZPRbmKkmANvul0X3cLm/XbN1K9DCycHwHe9XBJ8DL1GiNdFfJVBy92gepSezFSu4GXgbPbgEQ5hPxtyRSN8N3EQRTSWAn4Mi01U+Qw==wroCIKvsY8JniSorSgYaU48PzB9id1png9IjbcLAPGGNJDT57ML8N8+OGCR/XNZlpFgAduA5SZlgeLuUO3DGk6XdxEEi+7i85YyC9BHlmVNi82GMJKN9hdcNE6nxf0mrXJRpR2X8j11UzD0ckpVbFZPq/3YnYIB7ZAkmDUsUgA/uWuhodrMp3DMePzGGA5Bhv3J/Cxh8N/1eCS9z8Ou8Fo/TWTsnWqhU3oaqJ63UHQ4GFiTY4NnQTp7124PT/MWI+mMxEDczi2cTkGklBwzBmCcu42AOkEY4lfrbILKPX12fnBILNttJQYol+pFiIzTdFa57uXaLTlDZ6m+4SjhT6w==AQABCN=meshcommander.com, O=Open Source, C=USQKqKE5fGTj7jD6B+w9fuZLY4zr4=ffs9WakqTJ4POL4qvPSQO2PtOGntrIzQp4JiOl6xYW3PJ1cQV+ZryZZQ3fbEh1g0ATSLYu1LkBXO1tAXWA2cdwgTSeJOSEUok8FfNQLa5hBZYbb+PwaDUTqW+TQv5pW3IBIFF+4QKpOJMA2IVE/Cife2YqWohNE3wX2sHBN2aze4DoUU18piF3gf7MBZWq4WqoDdt3hc/YodiFqkNeaWRqJ8xA2Q74tC1SuJZ2TNCQvGCF8odjyCSTkZ0GjwD9s1nnnhM3KUefSDCtL13QPAIaWO+5WrwcojHuOmvgqCkOddPyCWaoyLhdCsuVjr0BH0Fjgljrpg8D36cyHCuVsCTw==wroCIKvsY8JniSorSgYaU48PzB9id1png9IjbcLAPGGNJDT57ML8N8+OGCR/XNZlpFgAduA5SZlgeLuUO3DGk6XdxEEi+7i85YyC9BHlmVNi82GMJKN9hdcNE6nxf0mrXJRpR2X8j11UzD0ckpVbFZPq/3YnYIB7ZAkmDUsUgA/uWuhodrMp3DMePzGGA5Bhv3J/Cxh8N/1eCS9z8Ou8Fo/TWTsnWqhU3oaqJ63UHQ4GFiTY4NnQTp7124PT/MWI+mMxEDczi2cTkGklBwzBmCcu42AOkEY4lfrbILKPX12fnBILNttJQYol+pFiIzTdFa57uXaLTlDZ6m+4SjhT6w==AQABMIIC+jCCAeICCQDiTk4zPcm5fTANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQGEwJVUzEUMBIGA1UECgwLT3BlbiBTb3VyY2UxGjAYBgNVBAMMEW1lc2hjb21tYW5kZXIuY29tMB4XDTE5MDUyOTIxNDIwMloXDTM5MDUyNDIxNDIwMlowPzELMAkGA1UEBhMCVVMxFDASBgNVBAoMC09wZW4gU291cmNlMRowGAYDVQQDDBFtZXNoY29tbWFuZGVyLmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMK6AiCr7GPCZ4kqK0oGGlOPD8wfYndaZ4PSI23CwDxhjSQ0+ezC/DfPjhgkf1zWZaRYAHbgOUmZYHi7lDtwxpOl3cRBIvu4vOWMgvQR5ZlTYvNhjCSjfYXXDROp8X9Jq1yUaUdl/I9dVMw9HJKVWxWT6v92J2CAe2QJJg1LFIAP7lroaHazKdwzHj8xhgOQYb9yfwsYfDf9Xgkvc/DrvBaP01k7J1qoVN6Gqiet1B0OBhYk2ODZ0E6e9duD0/zFiPpjMRA3M4tnE5BpJQcMwZgnLuNgDpBGOJX62yCyj19dn5wSCzbbSUGKJfqRYiM03RWue7l2i05Q2epvuEo4U+sCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEANBww5pVulxefbTTvqe1O64kExXbcv2WsVU98o2zDZgw2wsYvbeHXeRGNvtjFllIewrGQbyfDxGgY5Nqo2H1xD6/T8VksOLTbMfj8Qc5gtCu/DuW0JhdnLOwlXyoFqG83Ym9vaIfMd8J/5EkuvmAUvxoFw4uv+UYu+HUSQM2+1zdexn+rzNR8co/IOGNx2bDxQ1XYa7P3myhhM6/jdH40eSmJhvJxDH3nYxfV8CLNYPgj0DX335Tc28k9GHa8h9tNr0hPRoV/2jSpi9EE+x2lDENZrCCMw8D73UUq55OR+KSu4YbxyfvPrZmsFkft/Xeihay8IT1QYyWgWG0dbCHm4Q==
\ No newline at end of file
diff --git a/public/clickonce/minirouter/publish.htm b/public/clickonce/minirouter/publish.htm
deleted file mode 100644
index d02ac085..00000000
--- a/public/clickonce/minirouter/publish.htm
+++ /dev/null
@@ -1,90 +0,0 @@
-
-
- MeshCentral Mini-Router
-
-
-
-
-
-
-
-
- | Meshcentral.com | MeshCentral Mini-Router | |
|
|
-
-
-
-
-
-
-
- | Name: | | MeshCentral Mini-Router | | Version: | | 2.0.0.29 | | Publisher: | | Meshcentral.com | |
-
-
-
- |
-
- |
|
-
-
-
-
-
-
-
- |
-
-
-
-
-
- |
-
-
-
-
\ No newline at end of file
diff --git a/readme.md b/readme.md
index d3fe0fe5..47d713cd 100644
--- a/readme.md
+++ b/readme.md
@@ -41,9 +41,6 @@ How to setup Intel® AMT client initiated remote access (CIRA) to connect to
Explaining the MeshAgent
[![MeshCentral2 - JavaScript in the MeshAgent](https://img.youtube.com/vi/oJi0zydaeH0/mqdefault.jpg)](https://youtu.be/oJi0zydaeH0)
-Microsoft ClickOnce Demonstration
-[![MeshCentral2 - Microsoft ClickOnce Demonstration](https://img.youtube.com/vi/--RCkWqJ-gI/mqdefault.jpg)](https://youtu.be/--RCkWqJ-gI)
-
MeshCmd Router Demonstration
[![MeshCmd Router](https://img.youtube.com/vi/S38mg_BPe-M/mqdefault.jpg)](https://youtu.be/S38mg_BPe-M)
diff --git a/redirserver.js b/redirserver.js
index 75226e28..10eacc38 100644
--- a/redirserver.js
+++ b/redirserver.js
@@ -114,7 +114,6 @@ module.exports.CreateRedirServer = function (parent, db, args, func) {
var url = parent.config.domains[i].url;
obj.app.get(url, performRedirection); // Root redirection
obj.app.get(url + 'player.htm', performRedirection); // Player redirection
- obj.app.use(url + 'clickonce', obj.express.static(obj.parent.path.join(__dirname, "public/clickonce"))); // Indicates the clickonce folder is public
// Setup all of the redirections to HTTPS
const redirections = ['terms', 'logout', 'MeshServerRootCert.cer', 'mescript.ashx', 'checkmail', 'agentinvite', 'messenger', 'meshosxagent', 'devicepowerevents.ashx', 'downloadfile.ashx', 'userfiles/*', 'webrelay.ashx', 'health.ashx', 'logo.png', 'welcome.jpg'];
diff --git a/translate/translate.json b/translate/translate.json
index fc462d8a..5f823f13 100644
--- a/translate/translate.json
+++ b/translate/translate.json
@@ -29815,47 +29815,6 @@
"default.handlebars->29->1957"
]
},
- {
- "cs": "Vyžaduje podporu pro Microsoft ClickOnce v prohlížeči",
- "de": "Benötigt Microsoft-ClickOnce-Unterstützung in Ihrem Browser",
- "en": "Requires Microsoft ClickOnce support in your browser",
- "es": "Requiere soporte de Microsoft ClickOnce en su navegador",
- "fi": "Vaatii Microsoft ClickOnce-tuen selaimessasi",
- "fr": "Requiert Microsoft ClickOnce dans votre navigateur",
- "hi": "आपके ब्राउज़र में Microsoft ClickOnce समर्थन की आवश्यकता है",
- "ja": "ブラウザでMicrosoft ClickOnceサポートが必要です",
- "ko": "브라우저에서 Microsoft ClickOnce 지원 필요",
- "nl": "Vereist Microsoft ClickOnce-ondersteuning in uw browser",
- "pt": "Requer o suporte Microsoft ClickOnce no seu navegador",
- "ru": "Требуется поддержка Microsoft ClickOnce в вашем браузере",
- "tr": "Tarayıcınızda Microsoft ClickOnce desteği gerektirir",
- "zh-chs": "需要浏览器中的Microsoft ClickOnce支持",
- "zh-cht": "需要瀏覽器中的Microsoft ClickOnce支持",
- "xloc": [
- "default.handlebars->29->630"
- ]
- },
- {
- "cs": "Vyžaduje podporu pro Microsoft ClickOnce v prohlížeči.",
- "de": "Benötigt Microsoft-ClickOnce-Unterstützung in Ihrem Browser.",
- "en": "Requires Microsoft ClickOnce support in your browser.",
- "es": "Requiere soporte de Microsoft ClickOnce en su navegador.",
- "fi": "Vaatii Microsoft ClickOnce-tuen selaimessasi.",
- "fr": "Requiert Microsoft ClickOnce dans votre navigateur.",
- "hi": "आपके ब्राउज़र में Microsoft ClickOnce समर्थन की आवश्यकता है।",
- "ja": "ブラウザでMicrosoft ClickOnceサポートが必要です。",
- "ko": "브라우저에서 Microsoft ClickOnce 지원이 필요합니다.",
- "nl": "Vereist Microsoft ClickOnce-ondersteuning in uw browser",
- "pt": "Requer o suporte Microsoft ClickOnce no seu navegador.",
- "ru": "Требуется поддержка Microsoft ClickOnce в вашем браузере.",
- "tr": "Tarayıcınızda Microsoft ClickOnce desteği gerektirir.",
- "zh-chs": "在浏览器中需要Microsoft ClickOnce支持。",
- "zh-cht": "在瀏覽器中需要Microsoft ClickOnce支持。",
- "xloc": [
- "default.handlebars->29->632",
- "default.handlebars->29->634"
- ]
- },
{
"cs": "Znovu odeslat potvrzovací e-mail",
"de": "Bestätigungsmail erneut senden",
diff --git a/views/default.handlebars b/views/default.handlebars
index 4e89f690..0f946d42 100644
--- a/views/default.handlebars
+++ b/views/default.handlebars
@@ -1281,8 +1281,7 @@
var serverPublicNamePort = '{{{serverDnsName}}}:{{{serverPublicPort}}}';
var amtScanResults = null;
var debugmode = 0;
- //var clickOnce = (((features & 256) != 0) && detectClickOnce());
- var clickOnce = detectClickOnce();
+ var windowsBrowser = detectWindowsBrowser();
var attemptWebRTC = ((features & 128) != 0);
var passRequirements = '{{{passRequirements}}}';
if (passRequirements != '') { passRequirements = JSON.parse(decodeURIComponent(passRequirements)); }
@@ -1827,11 +1826,8 @@
xdr.send();
}
- // Return true if this browser supports clickonce
- function detectClickOnce() {
- //for (var i in window.navigator.mimeTypes) { if (window.navigator.mimeTypes[i].type == 'application/x-ms-application') { return true; } }
- //var userAgent = window.navigator.userAgent.toUpperCase();
- //return (userAgent.indexOf('.NET CLR 3.5') >= 0) || (userAgent.indexOf('(WINDOWS NT ') >= 0);
+ // Return true if this browser is Windows based
+ function detectWindowsBrowser() {
var userAgent = window.navigator.userAgent.toUpperCase();
return (userAgent.indexOf('WINDOWS') >= 0) || (userAgent.indexOf('WIN32') >= 0) || (userAgent.indexOf('WIN64') >= 0);
}
@@ -2327,19 +2323,7 @@
break;
}
case 'getcookie': {
- if (message.tag == 'clickonce') {
- /*
- if (message.trustedCert == true) {
- // Trusted certificate, use HTTPS port.
- var rdpurl = window.location.origin + domainUrl + 'clickonce/minirouter/MeshMiniRouter.application?WS=wss%3A%2F%2F' + window.location.hostname + '%2Fmeshrelay.ashx%3Fauth=' + message.cookie + '&CH={{{webcerthash}}}&AP=' + message.protocol + ((debugmode == 1) ? '' : '&HOL=1');
- safeNewWindow(rdpurl, '_blank');
- } else {
- // Not a trusted certificate, use HTTP port.
- var basicPort = ('{{{serverRedirPort}}}'.toLowerCase() == '') ? '{{{serverPublicPort}}}' : '{{{serverRedirPort}}}';
- var rdpurl = 'http://' + window.location.hostname + ':' + basicPort + domainUrl + 'clickonce/minirouter/MeshMiniRouter.application?WS=wss%3A%2F%2F' + window.location.hostname + '%2Fmeshrelay.ashx%3Fauth=' + message.cookie + '&CH={{{webcerthash}}}&AP=' + message.protocol + ((debugmode == 1) ? '' : '&HOL=1');
- safeNewWindow(rdpurl, '_blank');
- }
- */
+ if (message.tag == 'MCRouter') {
var servername = serverinfo.name;
if ((servername.indexOf('.') == -1) || ((features & 2) != 0)) { servername = window.location.hostname; } // If the server name is not set or it's in LAN-only mode, use the URL hostname as server name.
var domainUrlNoSlash = domainUrl.substring(0, domainUrl.length - 1);
@@ -4824,7 +4808,7 @@
// Save the new RDP port to the server
var rdpport = ((Q('d10rdpport').value.length > 0) ? parseInt(Q('d10rdpport').value) : 3389);
meshserver.send({ action: 'changedevice', nodeid: currentNode._id, rdpport: rdpport });
- if (currentNode != null) { p10clickOnce(currentNode._id, 'RDP2', rdpport); }
+ if (currentNode != null) { p10MCRouter(currentNode._id, 'RDP2', rdpport); }
}, x, currentNode);
Q('d10rdpport').focus();
if (currentNode.rdpport != null) { Q('d10rdpport').value = currentNode.rdpport; }
@@ -5816,11 +5800,11 @@
if ((args.xterm === 0) && (node.agent) && ((node.agent.caps & 2) != 0) && ((meshrights & 8) != 0) && ((meshrights == 0xFFFFFFFF) || ((meshrights & 512) == 0))) { x += '' + "XTerm" + ' '; }
// RDP link, show this link only of the remote machine is Windows.
- if (((connectivity & 1) != 0) && (clickOnce == true) && (node.agent) && ((meshrights & 8) != 0)) {
- if ((node.agent.id > 0) && (node.agent.id < 5)) { x += '' + "RDP" + ' '; }
+ if (((connectivity & 1) != 0) && (windowsBrowser == true) && (node.agent) && ((meshrights & 8) != 0)) {
+ if ((node.agent.id > 0) && (node.agent.id < 5)) { x += '' + "RDP" + ' '; }
if (node.agent.id > 4) {
- x += '' + "Putty" + ' ';
- x += '' + "WinSCP" + ' ';
+ x += '' + "Putty" + ' ';
+ x += '' + "WinSCP" + ' ';
}
}
@@ -6405,9 +6389,9 @@
meshserver.send({ action: 'removedevices', nodeids: [ nodeid ] });
}
- function p10clickOnce(nodeid, protocol, port) {
+ function p10MCRouter(nodeid, protocol, port) {
if ((protocol == 'RDP2') && (port == null)) { if (currentNode.rdpport != null) { port = currentNode.rdpport; } else { port = 3389; } }
- meshserver.send({ action: 'getcookie', nodeid: nodeid, tcpport: port, tag: 'clickonce', protocol: protocol });
+ meshserver.send({ action: 'getcookie', nodeid: nodeid, tcpport: port, tag: 'MCRouter', protocol: protocol });
return false;
}
diff --git a/webserver.js b/webserver.js
index a2c62167..4e8cf902 100644
--- a/webserver.js
+++ b/webserver.js
@@ -2294,7 +2294,7 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
if ((parent.config.settings.allowframing != null) || (domain.allowframing != null)) { features += 0x00000020; } // Allow site within iframe
if ((obj.parent.mailserver != null) && (obj.parent.certificates.CommonName != null) && (obj.parent.certificates.CommonName.indexOf('.') != -1) && (obj.args.lanonly != true)) { features += 0x00000040; } // Email invites
if (obj.args.webrtc == true) { features += 0x00000080; } // Enable WebRTC (Default false for now)
- if (obj.args.clickonce !== false) { features += 0x00000100; } // Enable ClickOnce (Default true)
+ // 0x00000100 --> This feature flag is free for future use.
if (obj.args.allowhighqualitydesktop !== false) { features += 0x00000200; } // Enable AllowHighQualityDesktop (Default true)
if ((obj.args.lanonly == true) || (obj.args.mpsport == 0)) { features += 0x00000400; } // No CIRA
if ((obj.parent.serverSelfWriteAllowed == true) && (user != null) && (user.siteadmin == 0xFFFFFFFF)) { features += 0x00000800; } // Server can self-write (Allows self-update)