(完整版)SecureCRT脚本编写方法

合集下载

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脚本-网络设备巡检脚本多窗口

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中输入很多字符命令,各个机型的命令又都不是完全相同,我们要背下来很多的字符命令,而且我们在输入的时候不能有一点错,那么有没有一种方法既简单又不用去死记硬背的方法呢?答案是肯定的,那就是利用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脚本对象详解

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脚本编写学习指南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设置教程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

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 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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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利用率
'内存利用率检查
'端口运行状态检查
'端口数据收发状态检查
'电源使用情况检查。

相关文档
最新文档