2009-11-06 6 views
1

Fondamentalement, je veux un Windows Service qui à un moment donné, se connecter sur une machine Windows (XP/Vista/7/2008)? Si cela est possible, veuillez me montrer le chemin?Comment me connecter via un service Windows?

+1

Clarifier: Est-ce que vous essayez d'amener un service à interagir avec le bureau Windows pour vous connecter à l'ordinateur, ou essayez-vous d'autoriser un service à exécuter des fonctions avec les mêmes privilèges qu'un utilisateur spécifique? – Jherico

Répondre

0

Pourquoi voulez-vous faire cela? Je suppose que vous voulez faire une connexion graphique, pas seulement exécuter du code en tant qu'utilisateur particulier sans interface graphique.

En supposant que vous souhaitiez vous connecter avec des informations d'identification d'utilisateur typiques et afficher le bureau Windows, je pense que vous ne serez pas en mesure de le faire. Au moins sur toute plate-forme plus récente que Windows XP, il existe une séparation stricte des composants de service et de bureau dans le système d'exploitation. Windows XP permettait une interaction avec le bureau, mais cela représentait un risque pour la sécurité.

Il existe une option dans le composant logiciel enfichable MMC Services qui détaille le compte d'utilisateur du service. S'il s'exécute en tant que compte système local, il existe une option pour permettre au service d'interagir avec le bureau. Je crois que le bureau d'ouverture de session est distinct d'un bureau d'utilisateur, ce qui signifie que vous ne pourrez peut-être pas interagir avec un service. Par exemple, des choses comme la séquence CTRL-ALT-DEL ne peuvent pas être exécutées à partir du code. Autant que je sache, les services ne peuvent pas interagir avec le bureau de l'utilisateur.

0

J'ai regardé cela il y a un moment et je n'ai jamais trouvé une bonne réponse.

Il existe plusieurs façons de configurer Windows pour qu'il se connecte automatiquement en tant qu'utilisateur au redémarrage - Vous ne savez pas si cela va vous aider.

1

Jetez un oeil à CreateProcessWithLogonW, CreateProcessAsUser, LogonUser. Si vous regardez les «pages de manuel» sur MSDN, cela devrait vous aider à démarrer.

CreateProcessWithLogonW()

Attribuées, comme d'autres l'ont mentionné, il est très précaire.

Questions connexes