(完整版)SecureCRT脚本编写方法
SecureCRT脚本对象详解

1.脚本类型SecureCRT支持三种类型的自动化脚本,vbs、javascript和python,书写语法如下。
vbs# $language = "VBScript"# $interface = "1.0"Sub Main.....End SubJavascript# $language = "JScript"# $interface = "1.0"function main() {.....}python(需SecureCRT6.6以上才支持)# $language = "Python"# $interface = "1.0"def main():.....main()2. SecureCRT内置对象SecureCRT提供了内置对象与脚本交互,这些对象封装了属性与操作,可用来操纵程序行为。
其中crt是顶级对象,代表了SecureCRT进程,其属性有ActivePrinter(打印机),Dialog,Screen,Session(会话),Version,Window(窗口)这些二级对象,操作有Sleep,Quit等。
2.1 Screen,操作屏幕的输入输出要注意的是,Screen只代表客户区的可见部分,这部分的大小可以通过会话选项里的逻辑行、列数来设定。
而整个会话的输出记录是回滚区,没有对应的对象;属性:CurrentColumn,CurrentRow(当前光标所在逻辑行)因为逻辑行、列数限定了可见区的大小,所以当输出满屏时,CurrentRow 和Rows 的值其实是一样的,都是最大值,不会随着屏幕输出再改变,这种设计实在是有些egg hurt,不知能否通过设置来解决Columns,Rows(可见区中的输出行数)Synchronous(同步模式,据说为了避免某些情况下的数据丢失,建议开启)。
SecureCRT脚本-网络设备巡检脚本多窗口

SecureCRT脚本-网络设备巡检脚本多窗口# $language = "VBScript"# $interface = "1.0"'支持cisco,huawei,h3c交换路由设备网络巡检,自动保存巡检信息Sub Maindim objCurrentTab(300)dim ndim paramsdim file1,fso,file_errordim type1dim path1,path2,path3'数据文件path1 = "C:\Users\Administrator\Desktop\test.txt"'导出配置文件path2 = "C:\Users\Administrator\Desktop\自动巡检\"'错误收集文件path3 = "C:\Users\Administrator\Desktop\error.txt"type1 = 0n = 1Set fso = CreateObject("Scripting.FileSystemObject") '创建文件对象Set file1 = fso.OpenTextFile(path1,1, False) '设置文件对象 1 只读模式;2 写模式;8 在文件末尾进行写操作Set file_error = fso.OpenTextFile(path3,1, true) '错误连接输出'判定文件是否存在if fso.FileExists(path1) <> true thenmsgbox "c:\test.txt 文件不存在!脚本将退出!"Exit subend if'从左到右激活每一个已经连接上的会话,并输入相关命令'第一个连接的会话DO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数 IP地址密码 En密码params = Split (line," ")set objCurrentTab(n) = crt.GetTab(n)objCurrentTab(n).session.disConnectobjCurrentTab(n).ActivateobjCurrentTab(n).Session.LogFileName = path2 & params(0) & ".txt"Call objCurrentTab(n).Session.Log(False) '关闭logCall objCurrentTab(n).Session.Log(True) '开启日志'objCurrentTab(n).Screen.Synchronous = True '开启屏幕同步On Error Resume Next '后面代码发生错误会继续执行objCurrentTab(n).session.Connect "/TELNET " & params(0) szError = Err.Description '将错误表述信息放入变量szError中On Error Goto 0 '关闭容错机制,即后面代码发生错误后会停止脚本,输出错误信息crt.sleep 2000'判断是否连接正常if objCurrentTab(n).Session.Connected thenobjCurrentTab(n).Screen.Synchronous = True '同步显示'第一次连接时的安全检测'Do' bCursorMoved = objCurrentTab(n).Screen.WaitForCursor(1) 'Loop until bCursorMoved = False' 一旦光标在一秒内停止移动,我们就认为他已经安全的连接上了远程设备'''''''''''''密码操作'''''''''思科,华为,H3C有不同点objCurrentTab(n).Screen.Send params(2) & chr(13)objCurrentTab(n).Screen.WaitForString ">"if params(1) = 1 thentype1 = 1objCurrentTab(n).Screen.Send "en" & chr(13)elsetype1 = 2objCurrentTab(n).Screen.Send "su" & chr(13)end ifobjCurrentTab(n).Screen.WaitForString "Password:"objCurrentTab(n).Screen.Send params(3) & chr(13)'''''''''''''只对非核心,路由有效果'''''''''type1 = 1 代表cisco;=2 代表h3c 或者huawei'等待1秒后执行巡检命令'crt.sleep 1000if type1 = 1 thenobjCurrentTab(n).Screen.WaitForString "#"'msgbox "思科巡检!"objCurrentTab(n).Screen.Send "show tech-support" & chr(13) 'objCurrentTab(n).Session.Disconnect() '断开连接'Call objCurrentTab(n).Session.Log(False) '关闭logelse'msgbox "其他巡检!"objCurrentTab(n).Screen.Send "dis dia" & chr(13)'N=displaycrt.sleep 5000objCurrentTab(n).Screen.WaitForString "N=display"objCurrentTab(n).Screen.Send "n" & chr(13)'objCurrentTab(n).Screen.WaitForString ">"'objCurrentTab(n).Session.Disconnect() '断开连接'Call objCurrentTab(n).Session.Log(False) '关闭logend ifelse'收集未连接上的设备信息g_szErrors = g_szErrors & vbcrlf & _"*** Error connecting to " & params(0) & ": " & szError '累计错误消息复制到变量g_szErrorsend if'crt.sleep 5000set newtab = objCurrentTab(n).Clone()n = n + 1loop'错误信息导出if g_szErrors <> "" thenfile_error.WriteLine(g_szErrors)'msgbox "以下是未连接上设备的信息:" & vbcrlf & g_szErrors set oShell = CreateObject("wscript.shell")oShell.Run path3set oShell = nothingend iffile1.Close '关闭文件file_error.CloseEnd Sub。
SecureCRT串口加网线脚本制作使用教程

用过串口加网线升级主板程序的朋友们都知道,要在SecureCRT中输入很多字符命令,各个机型的命令又都不是完全相同,我们要背下来很多的字符命令,而且我们在输入的时候不能有一点错,那么有没有一种方法既简单又不用去死记硬背的方法呢?答案是肯定的,那就是利用SecureCRT软件的脚本功能,实现一次录入,以后一键操作的快捷方法。
一、用到的工具: SecreCRT.exeTftpd32.exe二:工具的配置第一步:将USB串口升级版与电脑连接起来。
此时电脑会识别串口板。
第二步:找到串口板在电脑上的串口号;“右键“我的电脑,点击“管理”选择“设备管理器”---“端口(COM和LTP)”,可以看到此时COM口为COM14,记住后卫配置要用到。
(注意:不同的机器该数字不相同,一定要确认该数值。
此处的COM14只是一个范例)1、SecreCRT.exe的配置,打开SecreCRT.exe后,新建连接,在协议里选择Serial选择Serial后的配置如下:其中的端口是连接USB工具后USB的串口端口、流控制中所有的勾都要去掉!2、网络的配置:使用一根网线将电脑和电视直接连接起来,然后配置计算机的IP地址。
本地连接中的IP地址需要重新配置,请按如下配置:(LAN为本地连接)3、FTP的配置,打开Tftpd32.exe后,点击Browse选择升级程序所在文件夹,如下图所示。
配置完后,该软件不要关闭。
(本教程以TCL MS28机芯为例)三、烧写步骤1、将串口与网线连接好机器,打开SecreCRT.exe,机器上电的同时按紧回车键,(如果电视是上电待机,需要将电视使用遥控器开机时,也要一直按着回车键不放)会出现<># 的命令行这个时候就进入到我们最关键的时候了,前面的内容有些课件已经介绍过,现在进入正题:当出现<># 的命令行后,我们点击“脚本---开始录制脚本”接着就是按照正常的方法输入各条命令设置IP地址,在串口命令中输入:Set ipaddr 10.120.29.55Set serverip 10.120.29.5Saveenv设置FLASH,在串口命令中输入:mstar auto.txt回车输入完命令以后程序自动执行抄写命令,如下图我们已经执行完所有的手动操作命令了,这时我们就可以停止录制脚本了,具体方法是点击“脚本---停止录制脚本” 如下图:点击完“停止录制脚本”时,会弹出一个“另存为”对话框,是询问我们把录制的脚本存储的位置以及名称(我个人认为不要存储在C盘以及名称最好按机芯名称存储)。
SecureCRT脚本对象详解

1.脚本类型SecureCRT支持三种类型的自动化脚本,vbs、javascript和python,书写语法如下。
vbs# $language = "VBScript"# $interface = "1.0"Sub Main.....End SubJavascript# $language = "JScript"# $interface = "1.0"function main() {.....}python(需SecureCRT6.6以上才支持)# $language = "Python"# $interface = "1.0"def main():.....main()2. SecureCRT内置对象SecureCRT提供了内置对象与脚本交互,这些对象封装了属性与操作,可用来操纵程序行为。
其中crt是顶级对象,代表了SecureCRT进程,其属性有ActivePrinter(打印机),Dialog,Screen,Session(会话),Version,Window(窗口)这些二级对象,操作有 Sleep,Quit等。
2.1 Screen,操作屏幕的输入输出要注意的是,Screen只代表客户区的可见部分,这部分的大小可以通过会话选项里的逻辑行、列数来设定。
而整个会话的输出记录是回滚区,没有对应的对象;属性:CurrentColumn,CurrentRow(当前光标所在逻辑行)因为逻辑行、列数限定了可见区的大小,所以当输出满屏时,CurrentRow 和 Rows 的值其实是一样的,都是最大值,不会随着屏幕输出再改变,这种设计实在是有些 egg hurt,不知能否通过设置来解决Columns,Rows(可见区中的输出行数)Synchronous(同步模式,据说为了避免某些情况下的数据丢失,建议开启)。
SecureCRT中python脚本编写

SecureCRT中python脚本编写SecureCRT中python脚本编写学习指南SecureCRT python引⾔在测试⽹络设备中,通常使⽤脚本对设备端进⾏配置和测试以及维护;对于PE设备的测试维护⼈员来说使⽤较多是SecureCRT⼯具;SecureCRT⽀持VB、JavaScript、Python等多种脚本语⾔,为了实现脚本在CRT中更加丰富稳定地执⾏,掌握CRT的常⽤函数是⾮常有⽤的。
接下来的时间我将对SecureCRT脚本编写的常⽤函数展开学习应⽤。
内容(1)使⽤python语⾔实现SecureCRT中的Dialog功能# $language = "Python"# $interface = "1.0"#crt.Dialog.FileOpenDialog([title,[buttonLabel,[defaultFilename,[filter]]]])#弹出⼀个对话框,⽤于选择单个⽂件;如果选择了具体⽂件则返回该⽂件的绝对路径,如果选择了弹窗的“取消”,则返回空。
filePath = crt.Dialog.FileOpenDialog("please open a file","open","a.log","(*.log)|*.log")#filePath = crt.Dialog.FileOpenDialog("","","a.log","")#crt.Dialog.MessageBox(message, [title, [icon|buttons]]) 警告、按钮类型弹出⼀个消息框,可以定义按钮,使⽤按钮和⽂本消息来实现和⽤户的简单对话;crt.Dialog.MessageBox(filePath,"",64|0)crt.Dialog.MessageBox("会话已断开","session",64|2)crt.Dialog.MessageBox("确认是否退出","session",32|1)crt.Dialog.MessageBox("确认是否退出","session",32|3)crt.Dialog.MessageBox("是否继续安装","session",32|4)crt.Dialog.MessageBox("此会话已打开","session",48|5)crt.Dialog.MessageBox("⽆法连接此窗⼝","session",16|6)#crt.Dialog.Prompt(message [, title [,default [,isPassword ]]])#弹出⼀个输⼊框,⽤户可以填写⽂字,⽐如填写⽂件名,填写路径,填写IP地址等,运⾏结果如果点击'ok',返回输⼊的字符串,否则返回""password = crt.Dialog.Prompt("password","session","admin",False)crt.Dialog.MessageBox(password,"password",64|0)password = crt.Dialog.Prompt("password","session","",True)crt.Dialog.MessageBox(password,"password",64|0)(2)使⽤python语⾔实现SecureCRT中的Screen功能# $language = "Python"# $interface = "1.0"# CurrentColumn返回当前光标的列坐标。
SecureCRT设置教程之欧阳治创编

转帖】SecureCRT设置教程SecureCRT是最常用到的终端仿真程序,很多人都喜欢用进行一些配置和实验,在这里我只针对一些朋友常问到我的关于Cisco的Gns3与SecureCRT的配置进行讲解。
我以Secure_CRT_6.2.3版为例进行介绍。
一、安装安装相对来说比较简单,运行Secure_CRT_6.2.3,只要“下一步”即可,我们不去更改以默认安装就可以了。
二、注册对于Secure_CRT_6.2.3现在册上有很多注册机,只要去下载一个就可以了。
我这里用到的破解是器是crack.exe,把解压下来的crack.exe复制到安装文件夹下,并点击运行。
然后在打开的界面里的“name”和“company”项输入自己想要设置的字符就行,这个可以随便自己写也就是我写Rob的地方,最后点点“generate”生成序列号等项目,最后点“Patch”即可进行自己动注册。
【有些朋友反应说不可以进行自己动注册,那我在这里建议你,既然不能自动注册就不要太强求,我们把生成的项目全部复制下来,进行手动注册就行了】三、基本的设置界面介绍1、菜单1)File文件Connect... 连接,打开一个连接或者编辑已有的连接,创建新连接。
Quick Connect... 快速连接,快速连接对话框,快速连接主机的最便捷方式。
Connect in Tab... 在Tab中打开一个新的会话窗口。
Clone Session 克隆当前会话窗口。
Connect SFTP Tab 打开SFTP窗口,对于SSH 连接,此选项可用。
在此会话窗口中可使用SFTP命令传输文件。
Reconnect 重新连接Disconnect 中断当前会话窗口的连接Log Session 把当前窗口的会话记录到log文件中。
Raw Log Session 将更详细的会话记录到log文件中,包括服务器更详细的响应信息。
Trace Options 在log文件中记录协议会话信息选项。
SecureCrt脚本(一)顶级对象之Crt

Crt ⾃动化测试SecureCrt 脚本JS 脚本SecureCrt 脚本(⼀)顶级对象之CrtCrt 脚本的实现需要使⽤Crt 定义好的各个对象的属性和⽅法来实现,脚本函数系列将逐⼀介绍Crt 脚本中最常使⽤的对象,对这些对象以层级关系画出,本篇⾸先介绍顶级对象。
crt 的属性和⽅法。
属性是⼀个静态的对象,⽅法是具体执⾏的动作。
属性和⽅法底下还可以有⼦属性和⼦⽅法,这个其实就和⾯向对象的编程⽅式很像,有些基础的⼈应该会很快掌握。
解释在学习脚本函数前,先说说在脚本中头两⾏(必须写在头两⾏,且最好不要有空格回车之类的字符)所必须添加的标识,这两⾏标识告诉Crt 当前执⾏的脚本需要使⽤什么解释器进⾏解释。
其中language 为语⾔,现⽀持Jscript 、VBScript 、Python 、Perl,interface 为接⼝,现在都是1.0,以下为⽰例,修改对应的语⾔即可代码JS1 # $language = "JScript"2 # $interface = "1.0"python1 # $language = "Python"2 # $interface = "1.0"解释定义了⼀个Dialog(对话框),通过这个对象,可以通过调⽤该对象的⼦属性和⽅法实现对话框的相关功能。
代码JS 1 var diaObj = crt.Dialog;解释定义Screen(屏幕)对象,该对象是整个脚本中的灵魂,包含数据抓取、数据发送、等待数据等等重要功能都是有该对象的⼦属性和⽅法实现的。
代码JSvar scrObj = crt.Screen;解释该对象返回当前执⾏脚本的全名,其中包含脚本路径和脚本名,可以使⽤中⽂路径和⽂件名。
代码JSvar scrName = crt.ScriptFullName;解释定义当前会话属性,该属性有许多很实⽤的属性和⽅法可以使⽤。
securecrt script

securecrt script
SecureCRT是一款功能强大的远程登录软件,它可以通过脚本来自定义各种操作,提高工作效率,本文将介绍如何使用SecureCRT脚本来自动化操作。
第一步,打开SecureCRT软件,选择“Tools”-“Script Recorder”,启动脚本记录器。
在弹出的窗口中,点击“Start Recording”按钮,开始记录脚本。
第二步,进行需要自动化操作的操作,所有的操作都将被自动记录。
完成操作后,点击“Stop Recording”按钮,停止记录脚本。
第三步,编辑脚本,可以对录制完成的脚本进行修改和编辑。
打开“Tools”-“Script Editor”菜单,进入脚本编辑器,对脚本进行修改和添加。
第四步,执行脚本,选中编辑好的脚本,点击“Run”按钮,SecureCRT将自动执行脚本中的操作。
这样就可以自动化执行需要的操作了。
第五步,保存脚本,通过“File”-“Save As”命令,将编辑好的脚本保存下来,以便在以后需要的时候再次执行。
在使用SecureCRT脚本时,需要注意以下几点:
1. 确保在执行脚本操作之前,已经成功地建立SSH连接或是Telnet连接。
2. 确认脚本中的所有命令都是正确的,尤其是当执行的是敏感操作的时候。
3. 使用脚本时最好事先进行测试,以确保脚本能够顺利地执行。
4. 对于复杂的操作,可能需要编写多个脚本文件并按顺序执行。
总的来说,使用SecureCRT脚本可以帮助我们更轻松地进行远程管理操作,提高工作效率。
希望本文的介绍能够帮助到读者们。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SecureCRT脚本编写方法
一、SecureCRT工具常用到的几个函数阐述如下:
在SecureCRT里,用得最多的应该就是crt.Screen,基本上很多操作都是基于屏幕的返回字来决定下一步该作何操作:
第一: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("currentstate:UP",1)<>False)Then
portStatus="PortUP"
Else
portStatus="PortDown"
EndIf
msgboxportStatus
这段代码用于判断端口状态情况并记录下来.
第二: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
几个对话性的函数
其实SecureCRT支持的脚本语言就是VBS,这个脚本语言与VB有较大的不同,对于界面的支持性较差不过也有几个对话性的函数
1、InputBox:提示用户输入参数
temp=inputbox("提示用户你输入参数的名称","对话框的名称"):需要将输入的参数赋值给某一个参数进行使用
2、输出函数msgbox
msgbox“给用户输出的信息对话框”
eg.求正方形面积的脚本
dimr,s
r=inputbox("请输入正方形的边长:","求正方形面积的程序")
s=r*r
msgbox(s)
巡检代码示例
下面就我的工作性质,跟我同事一块制作的一个脚本程序——维护着N台路由器设备,每天需要对这些设备进行例行巡检下面是程序的所有代码,希望对各位有所帮助
*************************************************************************************** *******************
*************************************************************************************** *******************
#$language="VBScript"
#$interface="1.0"
'说明:
'本代码可在CRT工具中实现Cosico,华为,爱立信路由器交换机数据的自动配置或作为设备巡检之用;
Setscreen=crt.Screen'创建屏幕对象
'定义全局变量:
'Device变量为操作设备对象数组,作为存储设备名用;
'CiscoAggreOfCommands变量为思科设备命令集合数组,作为存储思科设备命令用;
'NE40EAggreOfCommands变量为华为NE40E设备命令集数组,作为存储华为NE设备命令用;
'SE800AggreOfCommands变量为爱立信SE800设备命令集数组,作为存储爱立信SE800设备命令用;'ArrreOfRiskCommands变量为各厂家设备存在风险性操作命令的数组,作为存储过滤风险操作命令之用;
'DeviceNumth变量为Device数组序号;
'CommandNumth变量为各厂家命令数组的序号;
'ResultOfType变量为判断设备类型标识符;
'TypeOfCommand变量作为存储当前命令类型用;
DimDevice,CiscoAggreOfCommands,NE40EAggreOfCommands,SE800AggreOfCommands,ArrreOfRiskComm ands
DimDeviceNumth,CommandNumth,ResultOfType
DimTypeOfCommand
'爱立信设备集合
'Device=Array("CE35-ERICSE800","CE36-ERICSE800","CE37-ERICSE800","CE38-ERICSE800")
'华为设备集合
Device=Array("CE07-HWNE40E","CE08-HWNE40E",_
"CE09-HWNE40E","CE10-HWNE40E",_
"CE11-HWNE40E","CE12-HWNE40E",_
"CE21-HWNE40E","CE22-HWNE40E",_
"CE23-HWNE40E","CE24-HWNE40E",_
"CE25-HWNE40E","CE26-HWNE40E",_
"CE29-HWNE40E","CE30-HWNE40E",_
"CE33-HWNE40E","CE34-HWNE40E",_
"CE45-HWNE40E","CE46-HWNE40E",_
"CE47-HWNE40E","CE48-HWNE40E",_
"CE49-HWNE40E","CE50-HWNE40E")
'思科设备命令集合CiscoAggreOfCommands=Array("showcdp",_ "showconf",_
"showhard",_
"showinterface",_
"showiproute",_
"showconf")
'华为NE40E设备命令集合
'健康检查
'告警检查
'日志检查
'单板运行状态检查
'CPU占用率检查
'内存占用率检查
'接口和链路状态以及流量检查
'NE40E接口状态检查
'OSPF邻居状态检查
'路由信息检查
NE40EAggreOfCommands=Array("displayhealth",_ "displaytrapbuffer",_ "displaylogbuffer",_
"displaydevice",_
"displaycpu-usage",_
"displaymemory-usage",_ "displayinterface",_
"disospfpeer",_
"displayiprouting-table")
'爱立信SE800设备命令集合
'单板注册信息
'办卡加电自检
'单板运行状态检查
'检查背板运行状态
'检查主控板冗余性
'存储设备利用率
'CPU利用率
'内存利用率检查
'端口运行状态检查
'端口数据收发状态检查
'电源使用情况检查。