Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

.net StandardInput.WriteLine faalt met putty, telnet

Pagina: 1
Acties:
  • 222 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik wil in een VB.net applicatie m.b.v. putty of een andere ssh-client een connectie maken met een Linux toestel. Met plink kan ik opdrachten doorgeven via Diagnostics.Process maar met putty of telnet wil het niet lukken.

Ik start eerst het proces via pProcess.StartInfo.FileName = "c:\windows\system32\cmd.exe"
vervolgens stuur ik opdrachten door via pProcess.StandardInput.WriteLine("telnet -l test 10.200.0.10")

Standard Error stream geeft:
======================================
Azerty123 wordt niet herkend als een interne
of externe opdracht, programma of batchbestand.
ls wordt niet herkend als een interne
of externe opdracht, programma of batchbestand.

======================================

Standard Output stream geeft:
======================================
c:\windows\system32\cmd.exe
Microsoft Windows [versie 5.2.3790]
(C) Copyright 1985-2003 Microsoft Corp.
c:\windows\system32>telnet -l test 10.200.0.10
c:\windows\system32>Azerty123
c:\windows\system32>ls
c:\windows\system32>exit

======================================

Blijkbaar worden later commando's niet doorgegeven aan de telnet sessie ookal heb ik de regel erboven gestart?! Als ik zelf via de commandline probeer lukt het natuurlijk vanzelf maar als ik diezelfde opdracht doorstuur aan het diagnostics.process object faalt het.

Ik heb de indruk dat het redirecten van de standardinput enkel werkt met cmd.exe en geen ander proggies.

ps rechtstreeks putty of telnet opstarten ipv eerst cmd.exe geeft hetzelfde probleem.

Voorbeeld met putty:
pProcess.StartInfo.FileName = "c:\putty.exe"
pProcess.StartInfo.Arguments = "-ssh -l root -pw mijnpw 10.200.0.10"

hier opent het het putty-venster wel en ben ik aangemeld maar worden writelines niet doorgevoerd.

Via plink kan ik wel commando's doorvoeren omdat ik dan geen standardinputredirect nodig heb maar als je veel commando's moet doorsturen is plink veel te traag omdat het elke keer een nieuwe sessie opent/sluit.

Kan iemand mij raad of inzicht geven in dit probleem?

Alvast hartelijk dank!

Verwijderd

Zet de commando's die je wil uitvoeren in een bestandje, en voer die aan je telnet/ssh client.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 11 oktober 2007 @ 00:06:
Zet de commando's die je wil uitvoeren in een bestandje, en voer die aan je telnet/ssh client.
Dat is ook vies als het met stdin/stdout moet kunnen werken. Helaas even geen tijd noch VS bij de hand om te kijken hoe het zou moeten werken.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

Hier is een c# SSH client:
http://www.tamirgal.com/home/dev.aspx?Item=SharpSsh

Wat ik in je verhaal mist is waarop je hebt gezocht, want mijn zoekdracht gaf vrijwel direct bovenstaande website als resultaat.

If it isn't broken, fix it until it is..


Verwijderd

Topicstarter
Afterlife: interactie tussen VB.net en putty wordt dan wel heel omslachtig. Hoe ga je dan eenvoudig standardoutput gaan opvragen?

Iemand een ander idee over de oorzaak of een mogelijke oplossing?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:45

TeeDee

CQB 241

Verwijderd schreef op donderdag 11 oktober 2007 @ 09:34:
Iemand een ander idee over de oorzaak of een mogelijke oplossing?
Andere oplossing: Sockets?
Oftewel, gooi eens een blik op de link van Niemand_Anders

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
Niemand_Anders: ik heb vooral gezocht op putty vb.net sshclient vb.net en geloof me ik heb heel wat uren aan het zoeken en surfen geweest.
Bedankt voor sharpssh tip!

Teedee: met sockets werken om opdrachten door te geven gaat maar dan niet in VB.Net, het toestel naar waar ik de opdrachten stuur is een Linux en FreeBSD omgeving. Of bedoel je zelf een sshclient schrijven? :-)

Iemand enig idee waarom de StandardInput.WriteLine niet werkt bij putty, telnet?

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Zijn het niet line-endings toevallig stiekem? ( \n | \r\n )

Stop uploading passwords to Github!


  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
Het valt me op dat hier http://msdn2.microsoft.co...rocess.standardinput.aspx eerst twee properties worden gezet:

C#:
1
2
myProcess.StartInfo.UseShellExecute = false
myProcess.StartInfo.RedirectStandardInput = true


Doe jij dat ook? Ik betwijfel trouwens of Putty op die manier gebruikt kan worden, het is volgens mij nl geen console programma dus ik vraag me af of het redirecten van stdin dan wel zin heeft.
SchizoDuckie schreef op donderdag 11 oktober 2007 @ 11:08:
Zijn het niet line-endings toevallig stiekem? ( \n | \r\n )
De fout treedt al op bij het spawnen van telnet/Putty

[ Voor 43% gewijzigd door farlane op 11-10-2007 11:42 ]

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
farlane: die 2 lijnen heb ik ook er tussen staan

putty opstarten (spawnen) lukt maar verder geen kan ik geen input doorgeven. Met c:\windows\system32\telnet.exe lukt het ook niet en dit is zeker (?) een commandline proggie.

Kan je mbv sendkeys opdrachten doorgeven aan een niet commandline programma bv. putty? Bij mij lukt het niet maar ik doe wrlk iets verkeerd.

Alvast bedankt voor het meedenken!

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:45

TeeDee

CQB 241

Verwijderd schreef op donderdag 11 oktober 2007 @ 11:07:
TeeDee: met sockets werken om opdrachten door te geven gaat maar dan niet in VB.Net, het toestel naar waar ik de opdrachten stuur is een Linux en FreeBSD omgeving. Of bedoel je zelf een sshclient schrijven? :-)
Waarom zou je in VB.net geen gebruik kunnen maken van Sockets?
Visual Basic .NET:
1
Imports System.Net.Sockets

Ben je nu niet te moeilijk aan het doen?

Ik denk dat als je het e.e.a netjes op wil lossen, zal je er toch niet aan ontkomen om een simpele client te schrijven. Desnoods port je de C# code van de link van Niemand_Anders naar VB.net

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Topicstarter
TeeDee: ff voor de duidelijkheid ik heb nu een oplossing:
- in VB.net kan ik de dll van sharpSsh rechtstreeks gebruiken
- via plink

Ik wou gewoon weten waarom ik noch via putty noch via telnet kon werken uit curiositeit want alternatieven zijn er genoeg. Het is de bedoeling dat ik uit m'n fouten/problemen leer.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 30-11 00:17
Ik heb even getest met telnet, waarbij ik Process.EnableEvents (of iets van die strekking ) aanzet. Bij mijn systeem wordt telnet direkt na het starten weer afgesloten. Kan niet zo snel lezen waarom maar misschien dat jij hetzelfde probleem hebt?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Topicstarter
Doordat Telnet onmiddellijk afsluit kan er dus geen invoer meer naar gestuurd worden... en opdrachten sturen naar putty werkt niet omdat het geen echt consoleprogramma is (ookal lijkt het er sterk op).

Bij mij wordt telnet ook onmiddellijk afgesloten. Er wordt geen foutmelding ofzo gegeven (heb ik met een printscreen kunnen zien)...
Pagina: 1