Je me suis efforcé d'envoyer automatiquement un message SSH à un serveur Linux. Ce qui est fou, c'est que je peux créer un script .bat, ça va le faire, mais je dois être là physiquement, pour taper le mot de passe.CMD.exe C# Emulator?
J'ai essayé d'automatiser cela en utilisant l'objet System.Diagnostics.Process dans C# sans fin. Je n'ai trouvé aucun moyen de faire en sorte que cet objet vous permette de voir l'invite de mot de passe. Il place chaque ligne jusqu'à ce point, et ne produit plus de lignes. Cmd.exe, fait vraiment bien de vous permettre de passer d'un processus à l'autre dans un script; Il consolide tout en un seul écran, et juste vous invite à des choses telles que les mots de passe, puis vous les taper.
Y at-il moyen simple, en C#, pour faire cmd.exe pense que vous êtes un être humain taper dedans, donc je peux simuler cela par programme? Sinon, System.Diagnostics.Process ne semble pas offrir un moyen d'interagir avec un processus qui génère une invite de mot de passe. On n'a jamais de voir l'invite qui se passe clairement lorsque vous exécutez la même chose dans cmd.exe
Avez-vous envisagé la mise en place des clés ssh pour éviter le mot de passe problème? http://oreilly.com/pub/h/66 – dsolimano
Oui, j'ai fait cela. Lorsqu'il est implémenté, le fichier de commandes se passe sans invite. Toutefois, via System.Diagnostics.Process, le processus arrête la sortie des lignes au point où la clé d'authentification ssh est transmise. –
L'authentification est peut-être effectuée dans un autre processus, autre que celui spécifié dans l'objet de processus. Contrairement à cmd.exe, l'objet de processus perd la possibilité d'être surveillé une fois que ce processus en appelle un autre. –