Zum Inhalt springen

VB6 und Wscript Probleme


Mr.Brot

Empfohlene Beiträge

Ich will über eine VB-Oberfläche mit WSH auf nen Linux-Server zugreifen.

Per Hand ist das auch alles kein Problem.

cmd.exe -> telnet test-server[enter] dann bin ich schon auf dem Server und kann mich einloggen (Username und dann PW eingeben). Und dort will ich dann das PW ändern.

passwd username -> altesPW -> neuesPW -> neuesPW nochmals eingeben und fertig.

Das möchte ich gern Automatisieren. Also in der VB-Oberfläche muß man nur username, altesPW und neuesPW eingeben und eine Button drücken.. fertig!

Das ist was ich gern haben will. :rolleyes:



Private Sub Command3_Click()



    Dim wshShell


    Set wshShell = CreateObject("Wscript.Shell")         


    wshShell.Run ("telnet test-server")



    Delay 1

    wshShell.SendKeys ("username{ENTER}")


    Delay 1

    wshShell.SendKeys "asdfghjk" & vbCr


    Delay 1

    wshShell.SendKeys "passwd username" & vbCr


    Delay 1

    wshShell.SendKeys "asdfghjk" & vbCr


    Delay 1

    wshShell.SendKeys "qwertzui" & vbCr


    Delay 1

    wshShell.SendKeys "qwertzui" & vbCr


    Delay 1

    wshShell.SendKeys "exit" & vbCr



End Sub

Das benutz ich grad und es geht auch.. Problem: bei einer langsamen Verbindung gehts nicht, weil dann die Wartezeiten von mir net passen und bei einer fehlerhaften Eingabe geht dann alles schief. Ich will dies mit wshShell.exec statt mit .run machen, weil man damit auch die auslesen kann was grad in der cmd.exe-box drin steht. Also mit "wshShellE.stdin.write" reinschreiben und mit "wshShellE.stdout.readline()" auslesen.

    Dim strText As String


    Dim wshShell

    Dim wshShellE


    Set wshShell = CreateObject("Wscript.Shell")


    Set wshShellE = wshShell.exec("cmd.exe")             


    wshShellE.stdin.write ("telnet test-server{ENTER}")


    Do Until wshShellE.stdout.AtEndofStream


            strText = wshShellE.stdout.readline()


    Loop


    If InStr(strText, "login:") < 1 Then


        MsgBox "Consolentext: " & strText, vbOKOnly


    End If


    wshShellE.stdin.write ("username{ENTER}")


undsoweiter...

aber es funzt nicht.. :confused:

Kann mir da jemand bitte helfen!?!?!? :WD

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hast du es schon mal mit dem Winsock-Control probiert?

http://www.activevb.de/tutorials/tut_winsock_control/winsock_con.html

Das über Shell Befehle zu machen finde ich persönlich im Allgemeinen nicht gut... Bei Win 95,98 heisst es "command", du bekommst keine Rückmeldung, Zeitüberscheitung etc.

PS: Bitte kein Thread-pushing.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...