许多网络管理员必须通过telnet进入网络交换机,才能查询或设置端口,监视系统的运行状况,甚至重新启动通过telnet接受命令的网络设备。如果可以像编写常规批处理作业一样自动执行telnet作业,那会不会很甜蜜?
事实是,如果您习惯于使用VB脚本来创建Windows脚本(甚至并非如此),VB脚本提供了一个非常有用的功能,您可以在其中将Windows Shell脚本建立为对象,然后发出该“对象"精心定时的命令。本质上,这就像您坐在命令窗口并输入命令一样。唯一的区别是Windows脚本正在向窗口发送命令给您。
自动执行Telnet作业
此任务基本上有两个部分。您需要确定在典型的telnet会话中要执行的命令顺序。
这就是我要做的。我在整个网络中有5台设备,可以通过发出4条简单命令通过telnet远程重新启动。我必须先使用IP地址和特定端口远程登录到它。接下来,出现一个菜单,我必须先按Enter键。
在此telnet会话中按Enter键后,下一个菜单需要一个数字响应,然后按Enter键。
对于脚本工作来说听起来有点不可能,不是吗?好吧,永远不要低估Visual Basic的功能。
现在,还有其他方法可以做到这一点。只需查看Abhigyan在Tst10.exe上的文章,即可了解某些人喜欢如何使用Tst脚本编制方法来自动执行telnet会话。不幸的是,您还会发现对于不习惯编写许多脚本的人来说,它可能会有些复杂。 Tcl还是程序员多年来用于同一任务的另一种相似的脚本语言。
但是,我将向您展示VB脚本文件如何在短时间内和短时间内完成相同任务。使用非常容易理解的脚本。
这就是我们要做的。我将把脚本分成几部分。把所有这些成所谓类似的 Autotelnet.wsf 的,双击一个文本文件,它会运行
首先 - 建立telnet会话:
<job>
<script language="VBScript">
Option Explicit
On Error Resume Next
Dim WshShell
set WshShell=CreateObject("WScript.Shell")
WshShell.run "cmd.exe"
WScript.Sleep 1000
'Send commands to the window as needed - IP and commands need to be customized
'Step 1 - Telnet to remote IP'
WshShell.SendKeys "telnet xx.xx.xx.73 9999"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
上面的代码部分将自动打开命令窗口,然后在需要连接的任何特定端口上远程登录到设备。用您自己的IP替换“ x"。
sleep命令将等待足够长的时间以使设备响应并提示您的脚本执行下一个命令。确保此等待时间足够长,以使该操作得以执行。
第二,您需要一次发送每个命令,并在每个命令之间提供足够的等待时间以使telnet会话响应。
'Step 2 - Issue Commands with pauses'
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
WshShell.SendKeys "5"
WshShell.SendKeys ("{Enter}")
WScript.Sleep 1000
在此示例中,我发出了上面提到的两个命令。首先,我让脚本发送“ Enter"命令,等待一秒钟,然后发送“ 5",然后再次按“ Enter"。这一系列简短的操作将完全像您坐在telnet命令窗口前面一样自行执行。您只需要自定义此脚本即可执行telnet会话所需的确切响应。
最后,不要忘记关闭命令窗口并结束脚本。
'Step 3 - Exit Command Window
WshShell.SendKeys "exit"
WshShell.SendKeys ("{Enter}")
WScript.Quit
</script>
如果您有经常要做的重复性任务,请多花点时间通过创建自动Windows脚本来简化这些工作,这些脚本将为您完成这些任务。您将提高工作效率,您的老板会真正留下深刻的印象!
对于使用这种Windows脚本可以自动化执行的出色任务,您还有其他想法吗?您如何自动执行自己的telnet任务?在下面的评论部分中分享您的想法和见解。
图片来源:Shutterstock
标签: