J'ai une application qui s'exécute en tant qu'utilisateur normal et un service s'exécutant en tant que système local. Je souhaite que l'application puisse indiquer au service de redémarrer l'application, une fois que le service a effectué d'autres tâches. (Ainsi, l'application ne s'exécutera pas tant que le service effectuera son «truc».) Pour que le service puisse démarrer l'application en tant qu'utilisateur qui l'a démarré, il a besoin d'un jeton utilisateur. L'application envoie le jeton au service avant qu'il ne se ferme, mais le jeton/handle n'est pas valide lorsque le service tente de l'utiliser. (La première chose à faire est avec DuplicateTokenEx pour obtenir un jeton principal.)Comment puis-je obtenir un jeton d'utilisateur valide pour CreateProcessAsUser?
Un jeton utilisateur est-il toujours valide uniquement dans le processus appelé OpenProcessToken?
Y a-t-il un autre moyen de le faire? Je ne veux pas que l'utilisateur doive "se connecter" à l'application avec logonuser. Ce serait juste stupide. Je suppose que je pourrais remettre un handle de processus pour "explorer.exe" de l'application au service, que le service pourrait utiliser pour obtenir un jeton d'utilisateur, mais cela nécessiterait l'accès à PROCESS DUP HANDLE droit. Je ne suis pas ravi de cette solution, mais peut-être que c'est la façon de le faire?
Merci, je vais avec le premier article, en créant un jeton avec ZwCreateToken. C'est un peu brouillon d'emballer tout ce dont j'ai besoin dans un message, mais a apparemment travaillé pour d'autres .. –
Le premier article semble avoir quelques erreurs, la seconde semble assez bonne.Mais je ne sais pas pourquoi vous utiliseriez ZwCreateToken (une méthode non documentée, non supportée et pas tout à fait stable) quand il existe des méthodes documentées pour faire ce que vous voulez. –
Désolé, je voulais dire deuxième. Je n'ai même pas trouvé le premier. Je fais quelque chose comme http://www.apnilife.com/E-Books_apnilife/Windows%20Programming_apnilife/Windows%20NT%20Undocumented%20APIs/1996%20Ch08_apnilife.pdf. Faites-vous référence à CreateToken? –