La réponse simple est que vous ne pouvez pas. Tout ce que vous pouvez faire est d'envoyer un message à la machine distante en lui demandant de démarrer le processus pour vous. PsExec s'exécute sur la machine distante en écoutant des messages spécifiques et en démarrant des processus en réponse à ces messages.
Vous pouvez utiliser un protocole existant, tel que PsExec, ou créer le vôtre. Créer le vôtre nécessite que vous puissiez installer un service sur la machine distante. Si la machine distante n'est pas sous votre contrôle, cela n'est pas possible. Si vous concevez votre propre système, vous devez faire attention lors de la conception du protocole car vous ne voulez pas ouvrir par inadvertance un trou de sécurité dans votre système.
Si je sais correctement, en Java, il est possible, de créer un processus sur un ordinateur distant ordinateur beaucoup beaucoup plus facile. C'est la raison pour laquelle j'ai demandé, si c'est possible en C++. En passant, les machines cibles sont membres du domaine, et je suis administrateur de tous les ordinateurs, ou si je ne suis pas, je voudrais spécifier un utilisateur qui est. – kampi
Si vous êtes administrateur, vous pouvez utiliser la technique suivante: 1) COPIER la chose que vous voulez exécuter dans \\ targetmachine \ C $ \ Someplace, en utilisant MoveFileEx() API 2) Utiliser OpenSCManager ("\\ targetmachine ", ...) API pour se connecter au gestionnaire de contrôle des services 3) Utiliser l'API ServiceControl() pour" exécuter "le fichier EXE en tant que service. Ce n'est pas un service, mais votre EXE sera lancé avant que le SCM s'en rende compte. – JBRWilkinson
Pourriez-vous peut-être me donner un exemple comment utiliser ServiceControl()? Je ne peux pas trouver n'importe où un exemple, que je peux utiliser pour :( – kampi