Jump to content
Sign in to follow this  
Hagforce

Hjelp til script for telnet

Recommended Posts

Hei.

 

Er det mulig å lage et vbs script for å utføre følgende.

 

-Start kommando linjen

-Telnet til ip 192.168.1.1

-Vent på respons

-ingen respons gi melding "ingen kontakt"

-ved respons send "passord"

-ingen respons gi melding "ingen kontakt"

-ved respons send "tast3"

-ingen respons gi melding "ingen kontakt"

-ved respons send "tast2"

-ingen respons gi melding "ingen kontakt"

-ved respons send "per"

-ingen respons gi melding "ingen kontakt"

-ved respons send "tast enter"

-ingen respons gi melding "ingen kontakt"

-ved respons send "teksten som ligger i fil c:/temp/test.txt"

-send "tast enter"

 

 

Har prøvd å lage noen vbs filer, men er helt på jordet her.

Noen som kan si om dette lar seg gjøre (tror da det), og hvilke kommandoer jeg bør bruke.

 

Takker så meget dersom noen tar seg tid til dette.

Share this post


Link to post

Besynderlig nok fikk jeg ikke STDIN og STDOUT til å fungere med Telnet.exe, hvilket betyr det blir nokså problematisk å avgjøre hvorvidt tilkoblingen fungerer, og hvorvidt de ulike meldingene blir oversendt med suksess. Å sende meldingene i seg selv er imidlertid intet problem:

 

' Benyttes i eksekveringen av telnet

Set WshShell = WScript.CreateObject("WScript.Shell")

 

' Kjør telnet

WshShell.Run "telnet.exe"

WScript.Sleep 5000

 

' Koble til den angitte datamaskin

WshShell.SendKeys "open 192.168.1.2" & Chr(13)

WScript.Sleep 5000

 

WshShell.SendKeys "passord" & Chr(13)

WScript.Sleep 2000

 

WshShell.SendKeys "tast3" & Chr(13)

WScript.Sleep 2000

 

WshShell.SendKeys "tast2" & Chr(13)

WScript.Sleep 2000

 

WshShell.SendKeys "per" & Chr(13)

WScript.Sleep 2000

 

' ENTER-tasten = Chr(13)

WshShell.SendKeys "tast enter" & Chr(13)

WScript.Sleep 2000

 

' Bruk Scripting.FileSystemObject for å hente ut data fra en tekstfil, dersom det er dét du forsøker å gjøre her

WshShell.SendKeys "teksten som ligger i fil c:\temp\text.txt" & Chr(13)

WScript.Sleep 2000

 

' Avslutt applikasjon/tilkobling

WshShell.SendKeys "quit" & chr(13)

Share this post


Link to post

Takker så meget aadnk :)

 

Dette fungerer bra.

 

Ja jeg tengte på å hente ut tekst fra en tekst fil og sende det som står på linje 2 feks som du gjør med "WshShell.SendKeys" og deretter enter.

 

Er det mulig, eller må det være komma separert?.

Share this post


Link to post
Ja jeg tengte på å hente ut tekst fra en tekst fil og sende det som står på linje 2 feks som du gjør med "WshShell.SendKeys" og deretter enter.

6600429[/snapback]

Da kan du legge til følgende kode (helt nederst i VBS-filen):

Function ReadFile(sFile)

 

    ' Objektet vi benytter for å lese tekstfiler

    Set oFS = CreateObject("Scripting.FileSystemObject")

 

    ' Sjekk hvorvidt filen samt filbanen eksisterer

    If oFS.FileExists(sFile) = True Then

       

        ' Åpne tekstfil for lesing (1)

        Set oTextStream = oFS.OpenTextFile(sFile, 1)

       

        ' Returner hele innholdet i tekstfilen

        ReadFile = oTextStream.ReadAll

       

        ' Lukk tekststrøm

        oTextStream.Close

       

        ' Rydd opp

        Set oTextStream = Nothing

   

    End If

   

    ' Rydd opp

    Set oFS = Nothing

 

End Function

Deretter kan du simpelthen gjøre således for å lese inn innholdet i en fil:

WshShell.SendKeys ReadFile("C:\Test.txt") & Chr(13)

WScript.Sleep 2000

Share this post


Link to post

Takker så meget igjen aadnk :thumbup:

 

Beklager at jeg maser på deg igjen men...

 

Du skriver at jeg må legge koden for å lese inn tekst filen nederst i scriptet, men skal koden for å sende teksten ligge etter denne igjen, eller kan den ligge hvor som helst i scriptet.

 

Er det mulig å sende en og en linje fra tekstfilen?.

Jeg har et senario der jeg ønsker å først sende linje 2 fra tekst filen, deretter div andre ting, så linje 5 fra filen osv.

Lar det seg gjøre, eller må det deles opp i separate tekstfiler og leses inn hver for seg?.

Er det i såfall bare å bruke ReadFile flere ganger for å lese inn flere filer?.

Share this post


Link to post
Du skriver at jeg må legge koden for å lese inn tekst filen nederst i scriptet, men skal koden for å sende teksten ligge etter denne igjen, eller kan den ligge hvor som helst i scriptet.

6603469[/snapback]

Den kan godt være plassert hvor det skal være, men nederst er nok en grei plassering.

 

Er det mulig å sende en og en linje fra tekstfilen?

6603469[/snapback]

Last inn hele tekstfilen og bruk Split() til å dele opp strengen i linjer:

aLines = Split(ReadFile("C:\Test.txt"), vbNewLine)

Deretter kan du simpelthen avlese hver linje i filen således:

MsgBox aLines(0) ' 0 = første linje, 1 = andre linje, etc.

Share this post


Link to post

Blir det ca sånn :dontgetit:

 

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run "telnet.exe"
WScript.Sleep 5000

WshShell.SendKeys "open 192.168.0.1" & Chr(13)
WScript.Sleep 5000

WshShell.SendKeys "passord" & Chr(13)
WScript.Sleep 2000

aLines = Split(ReadFile("C:\Test.txt"), vbNewLine)

WshShell.SendKeys MsgBox aLines(0) & Chr(13)
WScript.Sleep 2000 

WshShell.SendKeys "tast3" & Chr(13)
WScript.Sleep 2000

WshShell.SendKeys "tast2" & Chr(13)
WScript.Sleep 2000

WshShell.SendKeys MsgBox aLines(3) & Chr(13)
WScript.Sleep 2000 

WshShell.SendKeys "per" & Chr(13)
WScript.Sleep 2000

WshShell.SendKeys MsgBox aLines(5) & Chr(13)
WScript.Sleep 2000 

WshShell.SendKeys "enter" & Chr(13)
WScript.Sleep 2000


WshShell.SendKeys "quit" & chr(13)



Function ReadFile(sFile)

   Set oFS = CreateObject("Scripting.FileSystemObject")

   If oFS.FileExists(sFile) = True Then
      
       Set oTextStream = oFS.OpenTextFile(sFile, 1)
      
       ReadFile = oTextStream.ReadAll
      
       oTextStream.Close
      
       Set oTextStream = Nothing
  
   End If
  
   Set oFS = Nothing

End Function

Share this post


Link to post

Hei, dette var gøy :!:

 

Du har ikke noen gode referanse sider for slike kommandoer, eller bør jeg bruke et programm?.

 

Fikk lyst til å lage mer...

 

Er det mulig å få en tekst boks til å poppe opp der jeg skriver inn noe og klikker ok, deretter blir den sendt per telnet?.

Share this post


Link to post
Er det mulig å få en tekst boks til å poppe opp der jeg skriver inn noe og klikker ok, deretter blir den sendt per telnet?.

6607751[/snapback]

Såklart. Bruk InputBox:

WshShell.SendKeys InputBox("Skriv en tekst") & Chr(13)

Ellers kan du sikert ta en titt på Wikibooks for å lære deg litt Visual Basic.

Edited by aadnk

Share this post


Link to post

Inputbox er eneste brukerinterface inkludert i vbs. Imidlertid, ved hjelp av IE kan man lage brukerinterfacer som man vil ha dem i vbs. Her følger test.vbs jeg har laget for å demonstrere en enkel meldingsboks man kan bruke i vbs:

 

Set oIE = WScript.CreateObject("InternetExplorer.Application")
oIE.left=100: oIE.top = 100: oIE.height = 100: oIE.width = 220
oIE.menubar = 0: oIE.toolbar = 0: oIE.statusbar = 0
path = WScript.ScriptFullName
path = Left(path, InstrRev(path, "\"))
oIE.navigate path & "filbox.htm"
oIE.visible = 1
Do While (oIE.Busy)  
  WScript.Sleep 100   
Loop
Set WshShell = WScript.CreateObject("WScript.Shell")
Set knappen = oIE.document.getElementById ("knapp")
Set knappen.onclick = GetRef ("sende")
Sub sende
Set feltet = oIE.document.getElementById ("felt")
wscript.sleep 1000
wshshell.run ("notepad.exe")
wscript.sleep 1000
WshShell.SendKeys feltet.value  
End sub
ready = false
Do Until ready
 WScript.Sleep 100  
Loop

 

Selve brukerinterfacen er filbox.htm som følger her:

 

<title> Min InputBox</title>
Data:<input type = text size = 10 name = felt>
<input type = button name = knapp value = Send>

 

Lagre filbox.htm i samme mappe som test.vbs.

Dobbelklikk test.vbs, tast inn data i meldingsboksa og klikk på sendknappen, og data kommer opp i notepad.exe.

Edited by backup

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...