How To Automate A Telnet Session Without SendKeys

2019-02-22 20:39发布

问题:

I would like to telnet into my router, and I want to automate it so I do not have to login all the time, as I do it several times a day.

Is there another method apart from sendkeys in VBS? This is because that physically types, so the telnet window needs to be active, with is rather annoying.

I tried a batch file, but I am getting really strange results. Here it is:

telnet 192.168.1.254
REM This is the router IP
ping 255.255.255.255 -n 1 -w 1000 > nul
REM This is to wait for the router if its being slow
George 
REM This is the username, as it prompts as soon as it logs in
ping 255.255.255.255 -n 1 -w 1000 > nul
(the password)
ping 255.255.255.255 -n 1 -w 1000 > nul
system
REM Enters the system menu
ping 255.255.255.255 -n 1 -w 10 > nul
debug
REM Enters the Debug menu
ping 255.255.255.255 -n 1 -w 100 > nul
:s
 cpu
 REM This lets me see the CPU usage
 ping 255.255.255.255 -n 1 -w 1000 > nul
 REM Wait while it lists it
 mem
 REM Checks the memory 
 ping 255.255.255.255 -n 1 -w 1000 > nul
 REM Waits again!
goto s
REM I need a loop otherwise I would have to type out lots of code!

Here are the results:

C:\Users\George\Desktop>telnet 192.168.1.254

C:\Users\George\Desktop>telnet 192.168.1.254
^C Terminate batch job (Y/N)?

Why is it doing this? This would be my expected result...

Username : George
Password : *******
------------------------------------------------------------------------

                             ______  Technicolor TG582n
                         ___/_____/\
                        /         /\\  8.C.M.0.AR
                  _____/__       /  \\
                _/       /\_____/___ \  Copyright (c) 1999-2012, Technicolor
               //       /  \       /\ \
       _______//_______/    \     / _\/______
      /      / \       \    /    / /        /\
   __/      /   \       \  /    / /        / _\__
  / /      /     \_______\/    / /        / /   /\
 /_/______/___________________/ /________/ /___/  \
 \ \      \    ___________    \ \        \ \   \  /
  \_\      \  /          /\    \ \        \ \___\/
     \      \/          /  \    \ \        \  /
      \_____/          /    \    \ \________\/
           /__________/      \    \  /
           \   _____  \      /_____\/
            \ /    /\  \    /___\/
             /____/  \  \  /
             \    \  /___\/
              \____\/

------------------------------------------------------------------------
{George}=>system
{George}=>debug
{George}[system debug]=>cpu
CPU (%):    Idle     User     Kernel
           57.43     0.99    41.58
{George}[system debug]=>mem
Total:                    61280 KB
Used:                     45216 KB
  by kernel:              30748 KB
  by applications:        14468 KB
{George}[system debug]=>

So, Why is it doing this?

Can I use another method apart from sendkeys?

回答1:

You can google for this tool: it doesn't script windows telnet.exe but it is a scriptable telnet client.

Telnet Scripting Tool v.1.0
by Albert Yale



回答2:

One way is to use some of windows versions of netcat.Here'a an example: http://net.tutscity.com/networking/automate-telnet-session-using-netcat/



回答3:

Telnet Scripting tool (TST10) is old but yet very efficient,
here is a modern alternative to it, with a nice GUI AutoTelnet.