以下是我在某网站摘抄的脚本,该脚本号称可以自动化运维,但是实践中我们发现了存在问题。
#$language = "VBScript" #$interface = "1.0" '本脚本示范:从一个文件里面自动读取设备IP地址,密码等,批量配置交换机 Sub Main '打开保存设备管理地址以及密码的文件 Const ForReading = 1, ForWriting = 2, ForAppending = 8 Dim fso,file1,line,str1,params Set fso = CreateObject("Scripting.FileSystemObject") Set file1 = fso.OpenTextFile("e:\config.txt",Forreading,False) crt.Screen.Synchronous = True DO While file1.AtEndOfStream <> True '读出每行 line = file1.ReadLine '分离每行的参数 IP地址 密码 En密码 params = Split (line) 'Telnet到这个设备上 crt.Session.Connect "/TELNET " & params(0) '输入telnet账户 crt.Screen.WaitForString "Username:" crt.Screen.Send params(1) & vbcr '输入telnet账户密码 crt.Screen.WaitForString "Password:" crt.Screen.Send params(2) & vbcr '批量配置的命令 crt.Screen.WaitForString ">" crt.Screen.Send "sys" & vbcr crt.Screen.WaitForString "]" crt.Screen.Send "save" & vbcr crt.Screen.WaitForString "[Y/N]:" crt.Screen.Send "y" & vbcr crt.Screen.WaitForString ":" crt.Screen.Send vbcr crt.Screen.WaitForString "[Y/N]:" crt.Screen.Send "y" & vbcr crt.Sleep 1000 crt.Session.Disconnect loop crt.Screen.Synchronous = False End Sub其中以下这几段命令中原意为等待进入"<>“视图即进行下一步命令并输入"sys”,在实际操作过程中由于交换机命名过长或者>不易被vbs语言识别,经常导致脚本卡在该行无法进行后续的脚本,目前我还没有找到方法,发在博客看看大神聚集的地方有没有人能解决。:
crt.Screen.WaitForString ">" crt.Screen.Send "sys" & vbcr crt.Screen.WaitForString "]" crt.Screen.Send "save" & vbcr今天的学习就到这里吧,
原文地址:该脚本出处
