Updated taskscheduler on windows to use domain

Bryan Roe committed Apr 19, 2021 at 10:55 UTC 4262faf00c82c5a82cb3b09e26cd7126a29dcbcd
1 file changed +22 -5
agents/meshcore.js
+22 -5
@@ -17,6 +17,13 @@ limitations under the License.
17 process.on('uncaughtException', function (ex) {
18 require('MeshAgent').SendCommand({ action: 'msg', type: 'console', value: "uncaughtException1: " + ex });
19 });
20 +if (process.platform == 'win32' && require('user-sessions').getDomain == null)
21 +{
22 + require('user-sessions').getDomain = function getDomain(uid)
23 + {
24 + return (this.getSessionAttribute(uid, this.InfoClass.WTSDomainName));
25 + };
26 +}
27
28 // NOTE: This seems to cause big problems, don't enable the debugger in the server's meshcore.
29 //attachDebugger({ webport: 9999, wait: 1 }).then(function (prt) { console.log('Point Browser for Debug to port: ' + prt); });
@@ -984,8 +991,11 @@ function handleServerCommand(data) {
991 {
992 var tmp = "require('clipboard')(\"" + data.data.split('"').join('\\"') + '");process.exit();';
993 tmp = Buffer.from(tmp).toString('base64');
994 + var uid = require('user-sessions').consoleUid();
995 + var user = require('user-sessions').getUsername(uid);
996 + var domain = require('user-sessions').getDomain(uid);
997
988 - var taskoptions = { env: { _target: process.execPath, _args: '-b64exec ' + tmp, _user: require('user-sessions').getUsername(require('user-sessions').consoleUid()) } };
998 + var taskoptions = { env: { _target: process.execPath, _args: '-b64exec ' + tmp, _user: user } };
999 for (var c1e in process.env)
1000 {
1001 taskoptions.env[c1e] = process.env[c1e];
@@ -1766,7 +1776,8 @@ function onTunnelData(data) {
1776 userPromise.then(function (u) {
1777 var that = this.that;
1778 if (u.Active.length > 0) {
1769 - var username = u.Active[0].Username;
1779 + var username = '"' + u.Active[0].Domain + '\\' + u.Active[0].Username + '"';
1780 + sendConsoleText('Terminal: ' + username);
1781 if (require('win-virtual-terminal').supported) {
1782 // ConPTY PseudoTerminal
1783 that.httprequest._dispatcher = require('win-dispatcher').dispatch({ user: username, modules: [{ name: 'win-virtual-terminal', script: getJSModule('win-virtual-terminal') }], launch: { module: 'win-virtual-terminal', method: (that.httprequest.protocol == 9 ? 'StartPowerShell' : 'Start'), args: [cols, rows] } });
@@ -2692,8 +2703,10 @@ function openUserDesktopUrl(url) {
2703 try {
2704 switch (process.platform) {
2705 case 'win32':
2695 - var user = require('user-sessions').getUsername(require('user-sessions').consoleUid());
2696 - var taskoptions = { env: { _target: process.env['windir'] + '\\system32\\cmd.exe', _args: '/C START ' + url.split('&').join('^&'), _user: '"' + user + '"' } };
2706 + var uid = require('user-sessions').consoleUid();
2707 + var user = require('user-sessions').getUsername(uid);
2708 + var domain = require('user-sessions').getDomain(uid);
2709 + var taskoptions = { env: { _target: process.env['windir'] + '\\system32\\cmd.exe', _args: '/C START ' + url.split('&').join('^&'), _user: '"' + domain + '\\' + user + '"' } };
2710 for (var c1e in process.env)
2711 {
2712 taskoptions.env[c1e] = process.env[c1e];
@@ -3290,7 +3303,11 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
3303 var tmp = "require('clipboard')(\"" + (args['_'][0]).split('"').join('\\"') + '");process.exit();';
3304 tmp = Buffer.from(tmp).toString('base64');
3305
3293 - var taskoptions = { env: { _target: process.execPath, _args: '-b64exec ' + tmp, _user: require('user-sessions').getUsername(require('user-sessions').consoleUid()) } };
3306 + var uid = require('user-sessions').consoleUid();
3307 + var user = require('user-sessions').getUsername(uid);
3308 + var domain = require('user-sessions').getDomain(uid);
3309 +
3310 + var taskoptions = { env: { _target: process.execPath, _args: '-b64exec ' + tmp, _user: domain + '\\' + user } };
3311 for (var c1e in process.env)
3312 {
3313 taskoptions.env[c1e] = process.env[c1e];