fix upn for users and activeusers command #7409
Signed-off-by: si458 <simonsmith5521@gmail.com>
si458 committed
Jan 31, 2026 at 13:07 UTC
9a227b8f5a320e744c6c53fff0d3d362864476a6
1 file changed
+48
-20
agents/meshcore.js
+48
-20
@@ -791,9 +791,8 @@ function onUserSessionChanged(user, locked) {
791
var userobj = getLogonCacheKeys();
792
if(userobj && userobj.length > 0){
793
for (var j = 0; j < userobj.length; j++) {
794
- var u = userobj[j];
795
- if (u && u.SAM && u.SAM[0].trim() === a[i].Username) {
796
- meshCoreObj.upnusers.push(u.UPN);
794
+ if (userobj[j] && userobj[j].SAM && userobj[j].SAM[0].trim() === a[i].Username) {
795
+ meshCoreObj.upnusers.push(userobj[j].UPN);
796
break;
797
}
798
}
@@ -805,9 +804,8 @@ function onUserSessionChanged(user, locked) {
804
var userobj = getLogonCacheKeys();
805
if(userobj && userobj.length > 0){
806
for (var j = 0; j < userobj.length; j++) {
808
- var u = userobj[j];
809
- if (u && u.SAM && u.SAM.length == 0 && u.UPN && u.UPN != '') {
810
- meshCoreObj.upnusers.push(u.UPN);
807
+ if (userobj[j] && userobj[j].SAM && userobj[j].SAM.length == 0 && userobj[j].UPN && userobj[j].UPN != '') {
808
+ meshCoreObj.upnusers.push(userobj[j].UPN);
809
break;
810
}
811
}
@@ -4901,18 +4899,32 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
4899
var ret = getDomainInfo();
4900
for (var i in u) {
4901
if (u[i].State == 'Active') {
4904
- if (u[i].Domain != null && u[i].Domain == 'AzureAD'){
4905
- // AzureAD to-do
4906
- // var userGUID = require('win-registry').QueryKey(require('win-registry').HKEY.LocalMachine, 'SYSTEM\\CurrentControlSet\\Control\\CloudDomainJoin\\JoinInfo');
4907
- // if (userGUID != null){
4908
- // var user = require('win-registry').QueryKey(require('win-registry').HKEY.LocalMachine, 'SYSTEM\\CurrentControlSet\\Control\\CloudDomainJoin\\JoinInfo\\' + userGUID.subkeys[0], 'UserEmail');
4909
- // if (user != null) u[i].UPN = user;
4910
- // }
4902
+ if ((u[i].Domain != null && u[i].Domain == 'AzureAD') || getJoinState() == 1){
4903
+ var userobj = getLogonCacheKeys();
4904
+ if(userobj && userobj.length > 0){
4905
+ for (var j = 0; j < userobj.length; j++) {
4906
+ if (userobj[j] && userobj[j].SAM && userobj[j].SAM[0].trim() === u[i].Username) {
4907
+ u[i].UPN = userobj[j].UPN
4908
+ break;
4909
+ }
4910
+ }
4911
+ }
4912
} else if (u[i].Domain != null) {
4913
if (ret != null && ret.PartOfDomain === true) {
4914
u[i].UPN = u[i].Username + '@' + ret.Domain;
4915
+ } else if (getJoinState() == 8) { // One account with Microsoft Account
4916
+ var userobj = getLogonCacheKeys();
4917
+ if(userobj && userobj.length > 0){
4918
+ for (var j = 0; j < userobj.length; j++) {
4919
+ if (userobj[j] && userobj[j].SAM && userobj[j].SAM.length == 0 && userobj[j].UPN && userobj[j].UPN != '') {
4920
+ u[i].UPN = userobj[j].UPN;
4921
+ break;
4922
+ }
4923
+ }
4924
+ }
4925
}
4926
}
4927
+ if (u[i].UPN == null) { u[i].UPN = ''; }
4928
v.push({ tsid: i, type: u[i].StationName, user: u[i].Username, domain: u[i].Domain, upn: u[i].UPN });
4929
}
4930
}
@@ -5128,18 +5140,34 @@ function processConsoleCommand(cmd, args, rights, sessionid) {
5140
require('user-sessions').enumerateUsers().then(function (u) {
5141
var ret = getDomainInfo();
5142
for (var i in u) {
5131
- if (u[i].Domain != null && u[i].Domain == 'AzureAD'){
5132
- // AzureAD to-do
5133
- // var userGUID = require('win-registry').QueryKey(require('win-registry').HKEY.LocalMachine, 'SYSTEM\\CurrentControlSet\\Control\\CloudDomainJoin\\JoinInfo');
5134
- // if (userGUID != null){
5135
- // var user = require('win-registry').QueryKey(require('win-registry').HKEY.LocalMachine, 'SYSTEM\\CurrentControlSet\\Control\\CloudDomainJoin\\JoinInfo\\' + userGUID.subkeys[0], 'UserEmail');
5136
- // if (user != null) u[i].UPN = user;
5137
- // }
5143
+ if ((u[i].Domain != null && u[i].Domain == 'AzureAD') || getJoinState() == 1){
5144
+ var userobj = getLogonCacheKeys();
5145
+ if(userobj && userobj.length > 0){
5146
+ for (var j = 0; j < userobj.length; j++) {
5147
+ var a = userobj[j];
5148
+ if (a && a.SAM && a.SAM[0].trim() === u[i].Username) {
5149
+ u[i].UPN = a.UPN
5150
+ break;
5151
+ }
5152
+ }
5153
+ }
5154
} else if (u[i].Domain != null) {
5155
if (ret != null && ret.PartOfDomain === true) {
5156
u[i].UPN = u[i].Username + '@' + ret.Domain;
5157
+ } else if (getJoinState() == 8) { // One account with Microsoft Account
5158
+ var userobj = getLogonCacheKeys();
5159
+ if(userobj && userobj.length > 0){
5160
+ for (var j = 0; j < userobj.length; j++) {
5161
+ var a = userobj[j];
5162
+ if (a && a.SAM && a.SAM.length == 0 && a.UPN && a.UPN != '') {
5163
+ u[i].UPN = a.UPN;
5164
+ break;
5165
+ }
5166
+ }
5167
+ }
5168
}
5169
}
5170
+ if (u[i].UPN == null) { u[i].UPN = ''; }
5171
sendConsoleText(u[i]);
5172
}
5173
});