SecureCRT中Script脚本使用心得
在SecureCRT中使用VBSCRIPT脚本,确实能够提高我们的工作效率,并且可以实现完全的自动化。
SecureCRT给我们提供了很好的平台——脚本工具制作和运行。下面就SecureCRT工具常用到的几个函数阐述如下:
1. 在SecureCRT里,用得最多的应该就是crt.Screen,基本上很多操作都是基于屏幕的返回字来决定下一步该作何操作:
(1):crt.Screen.WaitForString("KeyString",timewaiting)
该函数是单字符串判断,KeyString是需要查找的关键字,timewaiting是一个超时阀值,例如:crt.Screen.WaitForString("people:",5)该行代码的意思就是在5秒内没有检测到people:出现,就执行下一条语句,如果改成:crt.Screen.WaitForString("people:")那就是指直到people:出现才执行下一行代码。
WaitForString是有返回值的,返回值是True 或者 False。因此,可以根据返回值进行条件判断以确定一下条代码。例如:
If (crt.Screen.WaitForString ("current state : UP",1)False) Then
portStatus="PortUP"
Else
portStatus="PortDown"
End If
msgbox portStatus
这段代码用于判断端口状态情况并记录下来.
(2):crt.Screen.WaitForStrings("KeyString1","KeyString2",...,timeout)
用于多个字符串的判断,timeout的作用是一样的。例如:
crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
意思就是在5秒内有检测到相应的字符时,返回相应的索引号(索引号是从1开始的)。如果都没有检查到,则返回0.因此,该函数的使用可以如下:
Dim SwitchKey
SwitchKey=crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
Select case SwitchKey
case 1
MsgBox "思科设备"
case 2
MsgBox "华为设备"
case 3
MsgBox "华三设备"
case else
MsgBox "未知设备"
End Select
(3) 其实SecureCRT支持的脚本语言就是VBS,这个脚本语言与VB有较大的不同,对于界面的支持性较差。不过也有几个对话性的函数
、InputBox :提示用户输入参数
temp = inputbox("提示用户你输入参数的名称","对话框的名称") :需要将输入的参数赋值给某一个参数进行使用。
、输出函数 msgbox
msgbox “给用户输出的信息对话框”
eg.求正方形面积的脚本
dim r,s
r=inputbox("请输入正方形的边长:","求正方形面积的程序")
s=r*r
msgbox(s)
-------------------------------------------------------------------------------------------
语句结构:
1. 顺序执行的脚本,举个网上泛滥的例子,那个自动登录系统的例子,稍加修改如下。
# $language = "VBScript"
# $interface = "1.0"
Sub Main
'连接主机192.168.0.2
crt.session.Connect("/telnet 192.168.0.2")
'等待出现登陆用户名提示login,等待时间是10s
crt.screen.WaitForString "login:",10
'输入用户名,回车
crt.screen.send "minico" & Chr(13)
'等待出现登陆密码提示login,等待时间是10s
crt.screen.WaitForString "Password:",10
'输入密码,回车
crt.screen.send "123456"
crt.screen.send Chr(13)
End Sub
2. 选择结构的脚本
if ... then ...else...结构和case结构见基础知识举例
3. 循环结构
脚本实例
#=====================================================
# $language = "VBScript"
# $interface = "1.0"
'============================================================================================='
' 程序名称:AIX.VBS
' 程序说明:AIX主机系统配置/巡检脚本
' 作者:郑继东
' 完成时间:2008-5-7
'============================================================================================='
'============================================================================================='
' 程序全局变量区
'============================================================================================='
dim ip
'============================================================================================='
' 程序全局常量区
'============================================================================================='
' button parameter options
Const ICON_STOP = 16 ' display the ERROR/STOP icon.
Const ICON_QUESTION = 32 ' display the '?' icon
Const ICON_WARN = 48 ' display a '!' icon.
Const ICON_INFO= 64 ' displays "info" icon.
Const BUTTON_OK = 0 ' OK button only
Const BUTTON_CANCEL = 1 ' OK and Cancel buttons
Const BUTTON_ABORTRETRYIGNORE = 2 ' Abort, Retry, and Ignore buttons
Const BUTTON_YESNOCANCEL = 3 ' Yes, No, and Cancel buttons
Const BUTTON_YESNO = 4 ' Yes and No buttons
Const BUTTON_RETRYCANCEL = 5 ' Retry and Cancel buttons
Const DEFBUTTON1 = 0 ' First button is default
Const DEFBUTTON2 = 256 ' Second button is default
Const DEFBUTTON3 = 512 ' Third button is default
' Possible MessageBox() return values
Const IDOK = 1 ' OK button clicked
Const IDCANCEL = 2 ' Cancel button clicked
Const IDABORT = 3 ' Abort button clicked
Const IDRETRY = 4 ' Retry button clicked
Const IDIGNORE = 5 ' Ignore button clicked
Const IDYES = 6 ' Yes button clicked
Const IDNO = 7 ' No button clicked
'============================================================================================='
' 程序辅助函数区
'============================================================================================='
'登陆函数
Function login
'定义IP地址,登陆用户名,密码变量
dim passwd
dim username
Dim result
Dim flag
flag =1
'断开主机连接
crt.session.Disconnect
'开启对话框,取得IP地址,登陆用户名称,密码等变量
ip = crt.Dialog.Prompt("请输入服务器IP地址:", "AIX", "192.1.1.207", false)
If (Trim(ip) = "") Or (ip = IDABORT) Then
result = crt.Dialog.MessageBox("您没有输入登陆的IP地址,CRT将被退出!", "提示信息",ICON_INFO)
crt.quit
End If
flag =1
While flag = 1
username = crt.Dialog.Prompt("请输入登陆用户名:", "AIX", "root", false)
If username = IDABORT Then
result = crt.Dialog.MessageBox("您选择了没有输入用户名称,CRT将被推出!", "提示信息",ICON_INFO)
crt.quit
End If
If (Trim(username) = "")Then
result = crt.Dialog.MessageBox("请输入登陆用户名称!", "提示信息",ICON_INFO)
Else
flag = 0
End If
wend
passwd = crt.Dialog.Prompt("请输入登陆用户密码:", "AIX", "congine", true)
'连接主机
crt.screen.Synchronous = true
crt.session.Connect("/telnet " & ip)
'等待出现登陆用户名提示login,等待时间是10s
crt.screen.WaitForString "login:"
'输入用户名,回车
crt.screen.send username & chr(13)
'等待出现登陆密码提示login,等待时间是10s
crt.screen.WaitForString "Password:"
'输入密码,回车
crt.screen.send passwd & chr(13)
If crt.screen.WaitForString("invalid login name or password", 3) = True Then
result = crt.Dialog.MessageBox("服务器登陆失败,请检查IP地址、用户名、密码是否输入正确!", "提示信息",ICON_INFO)
crt.quit
End If
crt.screen.Synchronous = false
End Function
'记录当前会话日志函数
Function writelog
Dim result
Dim logfilename
Dim flag
flag =1
While flag =1
logfilename = crt.Dialog.Prompt("请输入本次会话LOG文件位置", "AIX", "c:\" & ip &".log", false)
If Trim(logfilename) = "" Or (logfilename = IDABORT) then
result = crt.Dialog.MessageBox("强烈建议保存会话日志", "提示信息",ICON_INFO)
Else
flag = 0
End if
wend
crt.session.LogFileName = logfilename
crt.session.Log(true)
End Function
Function setline
crt.screen.send chr(13) & chr(13)
' crt.Sleep 1000
End Function
Function setcommand(cmdstr, sec)
setline
sec = sec * 1000
crt.screen.send cmdstr & Chr(13)
crt.Sleep sec
End Function
'取得服务器基本信息
Function get_machinfo
'主机基本信息
setcommand "hostname",1
setcommand "prtconf |grep 'Machine Serial Number'",6
'主机设备情况
setcommand "lsdev -C |grep proc",2
setcommand "lsattr -El mem0",2
setcommand "lsdev -Cc disk",2
setcommand "lsdev -Cc adapter",2
setcommand "lsdev -Cc tape",2
'主机网卡情况
setcommand "ifconfig -a",2
setcommand "more /etc/hosts",2
'主机软件信息
setcommand "uname -a ",2
setcommand "oslevel -s",5
setcommand "instfix -i |grep ML",10
'主机卷组信息
setcommand "lsvg ",2
setcommand "lsvg -o",2
setcommand "lsvg -l rootvg",2
'主机文件系统信息
setcommand "df -g ",2
'主机日志信息
setcommand "errpt ",2
setcommand "errpt -a",2
setcommand "sysdumpdev -l ",2
'主机系统性能
setcommand "lsps -a",2
setcommand "vmstat 2 10",25
setcommand "iostat 2 10",25
End Function
'============================================================================================='
' 程序主函数(main)区
'============================================================================================='
'主函数
Sub Main
Dim result
' crt.screen.Synchronous = true
'系统登陆
login
'写日志
writelog
'取得服务器信息
get_machinfo
result = crt.Dialog.MessageBox("信息收集完毕,是否推出CRT?", "提示信息", ICON_QUESTION Or BUTTON_YESNO Or DEFBUTTON2)
If result = IDYES Then
crt.quit
End If
'结束会话日志
crt.session.Log(false)
' crt.screen.Synchronous = false
End Sub

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Linux新版
SublimeText3 Linux最新版

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。