Added support for TSID selection on Windows
Bryan Roe committed
Dec 6, 2019 at 15:40 UTC
9e9ee7c58fde43fd525cd5e4f4f618b27a04bba3
1 file changed
+38
-4
agents/meshcore.js
+38
-4
@@ -1242,7 +1242,7 @@ function createMeshCore(agent) {
1242
}
1243
1244
// Remote desktop using native pipes
1245
- this.httprequest.desktop = { state: 0, kvm: mesh.getRemoteDesktopStream(), tunnel: this };
1245
+ this.httprequest.desktop = { state: 0, kvm: mesh.getRemoteDesktopStream(require('MeshAgent')._tsid == null ? undefined : require('MeshAgent')._tsid), tunnel: this };
1246
this.httprequest.desktop.kvm.parent = this.httprequest.desktop;
1247
this.desktop = this.httprequest.desktop;
1248
@@ -1286,7 +1286,7 @@ function createMeshCore(agent) {
1286
this.httprequest.desktop.kvm.connectionBar.removeAllListeners('close');
1287
this.httprequest.desktop.kvm.connectionBar.close();
1288
1289
- this.httprequest.desktop.kvm.connectionBar = require('notifybar-desktop')('Sharing desktop with: ' + this.httprequest.desktop.kvm.users.sort().join(', '));
1289
+ this.httprequest.desktop.kvm.connectionBar = require('notifybar-desktop')('Sharing desktop with: ' + this.httprequest.desktop.kvm.users.sort().join(', '), require('MeshAgent')._tsid);
1290
this.httprequest.desktop.kvm.connectionBar.httprequest = this.httprequest;
1291
this.httprequest.desktop.kvm.connectionBar.on('close', function ()
1292
{
@@ -1351,7 +1351,7 @@ function createMeshCore(agent) {
1351
}
1352
try
1353
{
1354
- this.ws.httprequest.desktop.kvm.connectionBar = require('notifybar-desktop')('Sharing desktop with: ' + this.ws.httprequest.desktop.kvm.users.sort().join(', '));
1354
+ this.ws.httprequest.desktop.kvm.connectionBar = require('notifybar-desktop')('Sharing desktop with: ' + this.ws.httprequest.desktop.kvm.users.sort().join(', '), require('MeshAgent')._tsid);
1355
MeshServerLog('Remote Desktop Connection Bar Activated/Updated (' + this.ws.httprequest.remoteaddr + ')', this.ws.httprequest);
1356
}
1357
catch(xx)
@@ -1405,7 +1405,7 @@ function createMeshCore(agent) {
1405
}
1406
try
1407
{
1408
- this.httprequest.desktop.kvm.connectionBar = require('notifybar-desktop')('Sharing desktop with: ' + this.httprequest.desktop.kvm.users.sort().join(', '));
1408
+ this.httprequest.desktop.kvm.connectionBar = require('notifybar-desktop')('Sharing desktop with: ' + this.httprequest.desktop.kvm.users.sort().join(', '), require('MeshAgent')._tsid);
1409
MeshServerLog('Remote Desktop Connection Bar Activated/Updated (' + this.httprequest.remoteaddr + ')', this.httprequest);
1410
}
1411
catch(xx)
@@ -1866,6 +1866,40 @@ function createMeshCore(agent) {
1866
response = 'Available commands: \r\n' + fin + '.';
1867
break;
1868
}
1869
+ case 'tsid':
1870
+ if (process.platform == 'win32')
1871
+ {
1872
+ if (args['_'].length != 1)
1873
+ {
1874
+ response = 'TSID: ' + (require('MeshAgent')._tsid == null ? 'console' : require('MeshAgent')._tsid);
1875
+ }
1876
+ else
1877
+ {
1878
+ var i = parseInt(args['_'][0]);
1879
+ require('MeshAgent')._tsid = (isNaN(i) ? null : i);
1880
+ response = 'TSID set to: ' + (require('MeshAgent')._tsid == null ? 'console' : require('MeshAgent')._tsid);
1881
+ }
1882
+ }
1883
+ break;
1884
+ case 'activeusers':
1885
+ if (process.platform == 'win32')
1886
+ {
1887
+ var p = require('user-sessions').enumerateUsers();
1888
+ p.sessionid = sessionid;
1889
+ p.then(function (u)
1890
+ {
1891
+ var v = [];
1892
+ for(var i in u)
1893
+ {
1894
+ if(u[i].State == 'Active' || u[i].State == 'Connected')
1895
+ {
1896
+ v.push({ tsid: i, type: u[i].StationName, user: u[i].Username });
1897
+ }
1898
+ }
1899
+ sendConsoleText(JSON.stringify(v, null, 1), this.sessionid);
1900
+ });
1901
+ }
1902
+ break;
1903
case 'wallpaper':
1904
if (process.platform != 'win32' && !(process.platform == 'linux' && require('linux-gnome-helpers').available))
1905
{