UPN / loggedOnUser - domain clients (#7627)
stephannn committed
Feb 18, 2026 at 12:46 UTC
1f912bdf65ccc5a2590eb4b6237793db0dbf3c3f
1 file changed
+22
-1
agents/meshcore.js
+22
-1
@@ -137,6 +137,23 @@ function getDomainInfo() {
137
return (ret);
138
}
139
140
+function getLoggedOnUserBySessionId(sessionId) {
141
+ try {
142
+ const result = require('win-registry').QueryKey(require('win-registry').HKEY.LocalMachine,
143
+ ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Authentication\\LogonUI\\SessionData\\" + sessionId), 'LoggedOnUser'
144
+ );
145
+
146
+ if (result) {
147
+ return result.replace(/^[^\\]+\\/, '');
148
+ }
149
+
150
+ return null;
151
+
152
+ } catch (err) {
153
+ return null;
154
+ }
155
+}
156
+
157
function getLogonCacheKeys() {
158
var registry = require('win-registry');
159
var HKLM = registry.HKEY.LocalMachine;
@@ -799,7 +816,11 @@ function onUserSessionChanged(user, locked) {
816
}
817
} else if (a[i].Domain != null) {
818
if (ret != null && ret.PartOfDomain === true) {
802
- meshCoreObj.upnusers.push(a[i].Username + '@' + ret.Domain);
819
+ var loggedOnUser = getLoggedOnUserBySessionId(a[i].SessionId);
820
+ if(loggedOnUser == null || (/^[^@]+@[^@]+\.[^@]+$/.test(loggedOnUser) == false)){
821
+ loggedOnUser = a[i].Username + '@' + ret.Domain;
822
+ }
823
+ meshCoreObj.upnusers.push(loggedOnUser);
824
} else if (getJoinState() == 4) { // One account with Microsoft Account
825
var userobj = getLogonCacheKeys();
826
if(userobj && userobj.length > 0){