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];