secureCRT腳本----vbs語法

常用語句:

1.CRT命令
‘發送命令
crt.Screen.Send “whyy@dsl-vty” & chr(13)
‘等待字符串出現
crt.Screen.WaitForString “Password:”
‘等待字符串出現,等待1秒鐘
crt.Screen.WaitForString (“Password:”,1)
‘開啓同步
crt.Screen.Synchronous = True
‘判斷指針1秒內不移動,用於確定安全連接可以進行後續代碼輸入操作
Do
bCursorMoved = crt.Screen.WaitForCursor(1)
Loop until bCursorMoved = False
‘判定是否已經連接到設備
if crt.Session.Connected = true then
‘斷開連接
crt.session.disConnect
‘激活窗口 用於多tab頁面
crt.Activate
‘連接到指定設備
crt.session.Connect(“/telnet ” & b(n))
‘延時1秒
crt.Sleep 1000

2.vbScript語句

a.文件操作
Set fso = CreateObject(“Scripting.FileSystemObject”) ‘創建文件對象
Set file1 = fso.OpenTextFile(“c:\test.txt”,1, False) ‘設置文件對象 1 只讀模式;2 寫模式;8 在文件末尾進行寫操作
objFso.FileExists(“文件路徑”) ‘判定文件是否存在,存在返回trus,否則返回false
file1.AtEndOfStream <> True ‘如果文件末尾無數據返回true,否則返回false
line = file1.ReadLine ‘讀取第一行文本數據,並將讀取位移動到下一行
params = Split (line) ‘分割讀取的行數據,用空格符分割
file1.Close ‘關閉文件

b.系統文檔操作
‘創建shell對象,對系統特殊文檔操作
Set objShell = CreateObject(“WScript.Shell”)

‘返回”我的文檔”的路徑給變量szMyDocs,可以動態的返回”我的文檔”的路徑
szMyDocs = objShell.SpecialFolders(“MyDocuments”)

‘設置文件路徑到變量中
szSessionsFile = szMyDocs & “\SessionList.txt”

3.知識點
<1.判斷文件是否存在
if Not objFso.FileExists(szSessionsFile) then ‘如果txt文件不存在,就報錯並退出sub
crt.Dialog.MessageBox “Session list file not found:” & vbcrlf & _
vbcrlf & _
szSessionsFile & vbcrlf & vbcrlf & _
“Create a session list file as described in the description of ” & _
“this script code and then run the script again.”
exit sub
end if

<2.容錯機制
On Error Resume Next ‘後面代碼錯誤會繼續執行
crt.Session.Connect “/telnet ” & vSessionsArray(0)
szError = Err.Description ‘將錯誤表述信息放入變量szError中
On Error Goto 0 ‘關閉容錯機制

<3.判斷是否安全連接
‘判斷是否連接正常
if crt.Session.Connected then
crt.Screen.Synchronous = True ‘同步顯示
‘第一次連接時的安全檢測
Do
bCursorMoved = crt.Screen.WaitForCursor(1)
Loop until bCursorMoved = False
’ 一旦光標在一秒內停止移動,我們就認爲他已經安全的連接上了遠程設備
end if

<4.安全關閉連接
’ 斷開連接
crt.session.disconnect
’ 等待連接關閉
Do
crt.Sleep 100
Loop While crt.Session.Connected = True ‘每100毫秒判斷連接是否斷開

<5.說明:
1.CRT默認tab的index爲1
2.要創建第二個標籤頁tab,必須使用函數set newtab = objCurrentTab1.Clone()複製標籤頁爲新的tab頁面
否則報錯tab 2 超出index範圍rang

函數:
Set objCurrentTab1 = crt.GetTab(1) ‘創建標籤頁1
objCurrentTab1.session.disConnect ‘斷開標籤頁1的當前連接
objCurrentTab1.Activate ‘激活標籤頁1
objCurrentTab1.session.Connect(“/telnet 172.16.205.1” ) ‘標籤頁1連接設備172.16.205.1
set newtab = objCurrentTab1.Clone() ‘複製標籤頁1到新標籤頁

示例:
【示例一】

 $language = "VBScript"
$interface = "1.0"
'本腳本示範:自動登錄到某臺3550交換機設備,自動輸入遠程登錄密碼,同時自動進入特權模式
'自動輸入特權密碼,同時運行show version命令

Sub Main
  crt.Screen.Synchronous = True
  '通過telnet連接到192.168.1.1
  crt.Session.Connect "/TELNET 192.168.1.1"
  crt.Screen.WaitForString "Password:"
  crt.Screen.Send "cisco" & vbCr
  crt.Screen.waitForString  ">"
  crt.Screen.Send "enable" & vbcr
  crt.Screen.WaitForString "Password:"
  crt.Screen.Send "cisco" & vbcr
  crt.Screen.waitForString "#"
  crt.Screen.Send "show version" & vbcr
  crt.Screen.waitForString "--More--"
  crt.Screen.Send " "
  crt.Screen.Synchronous = False
End Sub

【示例二】

 $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("d:\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 "Password:"
       crt.Screen.Send params(1) & vbcr
       '進特權模式
       crt.Screen.Send "enable" & vbcr
       crt.Screen.WaitForString "Password:"
       crt.Screen.Send params(2) & vbcr
       crt.Screen.waitForString "#"
        '備份目前Startup配置
       str1 = "copy startup tftp://192.168.1.2/"
       str1 = str1 & "backup(" & params(0) &")" & ".cfg"
       crt.Screen.Send str1 & vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       '備份完成後退出
       crt.Screen.waitForString "#",3
       crt.Session.Disconnect

       loop
    crt.Screen.Synchronous = False           
End Sub

config.txt文本文件爲事先編輯好的
格式如:
192.168.1.1 cisco cisco
192.168.1.254 cisco cisco
前面是IP地址,後面是telnet密碼,最後是enable密碼

Sub Main
    '打開保存設備管理地址以及密碼的文件
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso,file1,line,str1,params
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set file1 = fso.OpenTextFile("d:\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 "Password:"
       crt.Screen.Send params(1) & vbcr
       '進特權模式
       crt.Screen.Send "enable" & vbcr
       crt.Screen.WaitForString "Password:"
       crt.Screen.Send params(2) & vbcr
       crt.Screen.waitForString "#"
        '備份目前Startup配置
       str1 = "copy startup tftp://192.168.1.2/"
       str1 = str1 & "backup(" & params(0) &")" & ".cfg"
       crt.Screen.Send str1 & vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       crt.Screen.WaitForString "]?"
       crt.Screen.Send vbcr
       '備份完成後退出
       crt.Screen.waitForString "#",3
       crt.Session.Disconnect

       loop
    crt.Screen.Synchronous = False           
End Sub

【示例三】
批量添加靜態arp:

Sub Main
  Const ForReading = 1
  Dim fso,file,line
  set fso = CreateObject("Scripting.FileSystemObject")
  set file = fso.OpenTextFile("arp.txt",ForReading,False)
  crt.Screen.Synchronous = True
  DO While file.AtEndOfStream <> True
  line = file.ReadLine
  crt.Screen.Send line & vbcr
  crt.Sleep 100
  loop
  crt.Screen.Synchronous = False
End Sub

arp.txt如下:

arp static ip 12.1.1.025 mac 00:24:93:01:73:18 interface ethernet 0/0/1
arp static ip 12.1.1.026 mac 00:24:93:01:73:19 interface ethernet 0/0/1
arp static ip 12.1.1.027 mac 00:24:93:01:73:1a interface ethernet 0/0/1
arp static ip 12.1.1.028 mac 00:24:93:01:73:1b interface ethernet 0/0/1
arp static ip 12.1.1.029 mac 00:24:93:01:73:1c interface ethernet 0/0/1
arp static ip 12.1.1.030 mac 00:24:93:01:73:1d interface ethernet 0/0/1
arp static ip 12.1.1.031 mac 00:24:93:01:73:1e interface ethernet 0/0/1
arp static ip 12.1.1.032 mac 00:24:93:01:73:1f interface ethernet 0/0/1
arp static ip 12.1.1.033 mac 00:24:93:01:73:20 interface ethernet 0/0/1
arp static ip 12.1.1.034 mac 00:24:93:01:73:21 interface ethernet 0/0/1

參考文獻:
http://www.jianshu.com/p/2d3b21496f2a
http://www.justwinit.cn/post/2295/

發佈了48 篇原創文章 · 獲贊 34 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章