利用SecureCRT实现交换机自动登录脚本
原理简介:本脚本实现输入交换机登录名后自动登录,不用记繁琐的密码 su密码。例如所有的交换机ip,名称和密码以及su密码全部保存在一个txt文件里,比如 allswip.txt ;存放于E:\\easy\\allswip.txt 目录下,格式如下:
192.168.1.10 username1 password1 supassword1
192.168.1.11 username2 password2 supassword2
中间是空格,以方便读取。先输入用户名比如username2后,脚本自动去查找username2,然后自动telnet 192.168.1.11这个ip地址,后自动输入username2,password2,supassword2后输入sys就完了。
Javascript代码如下
# $language = "JScript"
# $interface = "1.0"
function main()
{
var fso, f;
var ForReading = 1, ForWriting = 2;
//准备读取allswip.txt文件
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile("E:\\easy\\allswip.txt", ForReading);
var swname;
//准备输入交换机名称
swname = crt.Dialog.Prompt("请输入交换机名称:", "登录交换机 ", "", false);
swname=swname.replace(/(^\s*)|(\s*$)/g, "");
if(swname=="")
{
crt.Dialog.MessageBox("交换机名称不能为空");
}
//在allswip.txt里查找交换机名称,然后登录
while ( f.AtEndOfStream != true )
{
var str = f.Readline();
//取文本一行然后用空格分开后比照用户名称,相等则telnet,否则继续读取行
params=str.split(' ');
//crt.Dialog.MessageBox(params[1]);
if(params[1]==swname)
{
crt.Session.ConnectInTab("/telnet " + params[0]);
crt.Screen.WaitForString("Username:");
crt.Screen.Send(params[1]+"\r");
crt.Screen.WaitForString( "Password:");
crt.Screen.Send(params[2] + "\r");
crt.Screen.WaitForString( ">");
crt.Screen.Send ("super 3" + "\r");
crt.Screen.WaitForString( " Password:");
crt.Screen.Send (params[3] + "\r");
crt.Screen.WaitForString( ">");
crt.Screen.Send ("sys" + "\r");
}
}
}
运行效果图:
选择脚本,并执行代码即可。
输入username2 即可登录完成。
注:至此已完,我是用来登录华为的交换机的,当然还可以登录中兴的9806H 等等,=这样的话可以少敲键盘,也可以在此基础上进行对所有的交换机进行批量备份,批量配置等等。以后会放出。很多secureCRT脚本 是用vbs写的,很多我参照并用javascript重写了。作者:鲍继川 邮箱:bc5367@gmail.com 多谢指教