J’ai un service Windows qui a besoin du nom d’utilisateur actuellement enregistré. J’ai `` essayé, l’identité Windows et l’authentification par formulaire Windows, mais tous renvoient "Système" car l’utilisateur car mon service s’exécute dans le système privilégié. Existe-t-il un moyen d’obtenir le nom d’utilisateur actuellement connecté sans modifier mon type de compte de service ?
Réponses
Trop de publicités?La solution ManagementObjectSearcher(« SELECT UserName FROM Win32_ComputerSystem ») a bien fonctionné pour moi. MAIS cela ne fonctionne pas si le service est démarré via une connexion Bureau à distance. Pour contourner ce problème, nous pouvons demander le nom d’utilisateur du propriétaire d’un processus interactif qui s’exécute toujours sur un PC: explorer.exe. De cette façon, nous obtenons toujours le nom d’utilisateur actuellement connecté à Windows à partir de notre service Windows:
Code modifié de la réponse de Tapas: