level 1
#$language = "VBScript"
#$interface = "1.0"
crt.Screen.Synchronous = True
Const UserName1 = "", PassWord1 = ""
'设置第一套用户名和密码
Const UserName2 = "", PassWord2 = "", EnablePassWD2 = ""
'设置第二套用户名和密码以及enable密码
Const LstFileLK = "D:\Yone\Documents\Run\list1.txt"
'设置地址表位置
Const CmdFileLK = "D:\Yone\Documents\Run\cmd.txt"
'设置命令表位置
Const LogFileLK = "D:\Yone\Documents\Run\log\"
'设置回显保存的位置(此处只要设置保存到的文件夹位置,命令产生的回显会自动以IP.TXT保存在不同文件中)
Const Read = 1, Write = 2
'设置常量Read为1,Write为2
'以上为全局常量在整个程序中均有效
Sub Main
'主函数
Dim fso, LstFile
'定义两个变量(注:fso为局部变量仅在此函数中有效)
Set fso = CreateObject("Scripting.FileSystemObject")
'调用函数创建对象
Set LstFile = fso.OpenTextFile(LstFileLK, Read, False)
'调用函数创建对象的属性(读取地址表中的内容)
Login(LstFile)
'调用Login子函数,并将地址表中的内容传入
Crt.Screen.Synchronous = False
'Crt运行完毕
End Sub
'程序结束
Sub Login(LstFile)
'Login子函数(接收主函数传递的内容)
Dim IP,SwitchKey
Do While LstFile.AtEndOfStream <> True
'循环读入地址表中的内容直到结束
On Error Resume Next
IP = LstFile.ReadLine
'读入地址表中的第一行内容
Crt.Session.LogFileName = LogFileLK & IP & ".txt"
'创建回显保存的文件名(IP.TXT)
Crt.Session.Log(True)
Crt.Session.Connect "/TELNET " & IP
'使用TELNET方式登录
On Error Resume Next
SwitchKey = Crt.Screen.WaitForStrings("LDAP username: " , "Username: " , 1)
Select Case SwitchKey
Case 1
Crt.Screen.Send UserName1 & vbCr
'发送第一套用户名,并记录下回显到相应的文件中
Crt.Screen.WaitForString "LDAP password: "
'等待回显字符串为LDAP password:
Crt.Screen.Send PassWord1 & vbCr
'发送第一套密码,并记录下回显到相应的文件中
Case 2
Crt.Screen.Send UserName2 & vbCr
Crt.Screen.WaitForString "Password: "
Crt.Screen.Send PassWord2 & vbCr
Crt.Screen.WaitForString ">"
Crt.Screen.Send "enable" & vbCr
Crt.Screen.WaitForString "Password: "
Crt.Screen.Send EnablePassWD2 & vbCr
Case Else
'crt.Session.Disconnect
End Select
' If (Crt.Screen.WaitForString("LDAP username: ") <> False) Then
' '如果 登录后屏幕回显的字符串为LDAP username: 则运行
'
' Crt.Screen.Send UserName1 & vbCr
' '发送第一套用户名,并记录下回显到相应的文件中
' Crt.Screen.WaitForString "LDAP password: "
' '等待回显字符串为LDAP password:
' Crt.Screen.Send PassWord1 & vbCr
' '发送第一套密码,并记录下回显到相应的文件中
' End If
' 'If语句结束
'
' If (Crt.Screen.WaitForString ("Username: ") <> False) Then
'
' Crt.Screen.Send UserName2 & vbCr
' Crt.Screen.WaitForString "Password: "
' Crt.Screen.Send PassWord2 & vbCr
' Crt.Screen.WaitForString ">"
' Crt.Screen.Send "enable" & vbCr
' Crt.Screen.WaitForString "Password: "
' Crt.Screen.Send EnablePassWD2 & vbCr
'
' End If
RunCommand()
'调用RunCommand子函数
Loop
'循环结束
End Sub
'返回主函数
Sub RunCommand()
'RunCommand子函数
Dim fso, CmdFile, CMD
'此处fso变量属于局部变量,所以不会和主函数中的fso变量冲突
Set fso = CreateObject("Scripting.FileSystemObject")
'创建对象
Set CmdFile = fso.OpenTextFile(CmdFileLK, Read, False)
'读取命令表中的命令
Do
crt.Screen.Send chr(13)
Loop Until (crt.Screen.WaitForString("#") <> False)
Do While CmdFile.AtEndOfStream <> True
'循环执行命令表中的命令直到结束
On Error Resume Next
CMD = CmdFile.ReadLine
crt.Screen.Send CMD & vbcr
'执行命令表中的命令
Do while ( crt.Screen.WaitForString(" --More-- ") <> False )
crt.Screen.Send(" ")
Loop
Loop
'循环结束
crt.Session.Disconnect
'关闭CRT对话框
End Sub
'返回Login子函数
2016年04月27日 16点04分
