(完整版)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脚本可以帮助我们更轻松地进行远程管理操作,提高工作效率。
希望本文的介绍能够帮助到读者们。
SecureCRT中关于python脚本的介绍适用于SCRT8.0版本
SecureCRT中关于python脚本的介绍适⽤于SCRT8.0版本⼀般通信设备的测试⼈员使⽤ SCRT的较多,为了减轻重复劳动,常常会编写⼀些⼩脚本⽤于⾃动化测试。
以前基本都使⽤VB脚本,不过我不会⽤VB,⽽且最近在研究Python,于是就尝试⽤python写这些脚本,顺便记录⼀下。
我现在使⽤是SCRT版本是8.0的,这个软件内置了⼀个python解释器,因此即使你电脑上没有装python软件也可以使⽤python脚本。
不过他内置的是python2.7的版本,⽬前还不⽀持python3的特性,在官⽅论坛中,有⼈也问到了这个问题,不过官⽅回复暂时没有⽀持的计划。
好在SCRT脚本使⽤的python的特性在python2和python3中区别并不⼤,因此实际使⽤并没有感觉到不适。
我是直接学习的python3,没有学过python2,编写出来的脚本在使⽤中没有出现什么问题。
在SCRT的安装⽬录下有python的⽂件,⽂件名是:python27.dll和python27.zip。
⾸先介绍⼀下在编写SCRT脚本中的所⽤到的脚本对象。
SCRT共⽀持以下11种脚本对象:1. Application 对象2. Arguments 对象3. Clipboard 对象4. CommandWindow 对象5. Dialog 对象6. FileTransfer 对象7. Screen 对象8. Session 对象9. SessionConfiguration对象10. Tab 对象11. Window 对象我在实际⽤的最多的就是Dialog对象、Screen对象、Session对象这⼏个,因此这⼏种对象会重点写⼀下。
因为是⽤的python,因此只写关于python部分的内容,VB部分的不做介绍。
每种对象⽤⼀篇博⽂来记录。
关于每种对象的介绍均参考⾃软件⾃带的帮助⽂件,该⽂件可以通过软件界⾯的help——help topic按钮来找到,是纯英⽂的,多亏了⾕歌翻译。
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秒内不移动,用于确定安全连接可以进行后续代码输入操作DobCursorMoved = 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 10002.vbScript语句a.文件操作Set fso = CreateObject(“Scripting.FileSystemObject”) ‘创建文件对象Set file1 = fso.OpenTextFile(“c:\test.txt”,1, False) ‘设置文件对象1 只读模式;2 写模式;8 在文件末尾进行写操作objFso.FileExists(“文件路径”) ‘判定文件是否存在,存在返回trus,否则返回falsefile1.AtEndOfStream <> True ‘如果文件末尾无数据返回true,否则返回falseline = 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文件不存在,就报错并退出subcrt.Dialog.MessageBox “Session list file not found:” & vbcrlf & vbcrlf & szSessionsFile & vbcrlf & vbcrlf & “Create a s ession list file as describ ed in the description of ” & “this script code and then run the script again.”exit subend if(2)容错机制On Error Resume Next ‘后面代码错误会继续执行crt.Session.Connect “/telnet ” & vSe ssionsArray(0)szError = Err.Description ‘将错误表述信息放入变量szError中On Error Goto 0 ‘关闭容错机制(3)判断是否安全连接‘判断是否连接正常if crt.Session.Connected thencrt.Screen.Synchronous = True ‘同步显示‘第一次连接时的安全检测DobCursorMoved = crt.Screen.WaitForCursor(1)Loop until bCursorMoved = False’ 一旦光标在一秒内停止移动,我们就认为他已经安全的连接上了远程设备end if(4)安全关闭连接’ 断开连接crt.session.disconnect’ 等待连接关闭Docrt.Sleep 100Loop While crt.Session.Connected = True ‘每100毫秒判断连接是否断开(5)说明:1.CRT默认tab的index为12.要创建第二个标签页tab,必须使用函数set newtab = objCurrentTab1.Clone()复制标签页为新的tab页面否则报错tab 2 超出index范围rang函数:Set objCurrentTab1 = crt.GetTab(1) ‘创建标签页1objCurrentTab1.session.disConnect ‘断开标签页1的当前连接objCurrentTab1.Activate ‘激活标签页1objCurrentTab1.session.Connect(“/telnet 172.16.205.1” ) ‘标签页1连接设备172.16.205.1set newtab = objCurrentTab1.Clone() ‘复制标签页1到新标签页示例:【示例一】$language = "VBScript"$interface = "1.0"'本脚本示范:自动登录到某台3550交换机设备,自动输入远程登录密码,同时自动进入特权模式'自动输入特权密码,同时运行show version命令Sub Maincrt.Screen.Synchronous = True'通过telnet连接到192.168.1.1crt.Session.Connect "/TELNET 192.168.1.1"crt.Screen.WaitForString "Password:"crt.Screen.Send "cisco" & vbCrcrt.Screen.waitForString ">"crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send "cisco" & vbcrcrt.Screen.waitForString "#"crt.Screen.Send "show version" & vbcrcrt.Screen.waitForString "--More--"crt.Screen.Send " "crt.Screen.Synchronous = FalseEnd Sub【示例二】$language = "VBScript"$interface = "1.0"'本脚本示范:从一个文件里面自动读取设备IP地址,密码等,自动将设备配置备份Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False) crt.Screen.Synchronous = TrueDO 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" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcrcrt.Screen.waitForString "#"'备份目前Startup配置str1 = "copy startup tftp://192.168.1.2/"str1 = str1 & "backup(" & params(0) &")" & ".cfg"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcr'备份完成后退出crt.Screen.waitForString "#",3crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Subconfig.txt文本文件为事先编辑好的格式如:192.168.1.1 cisco cisco192.168.1.254 cisco cisco前面是IP地址,后面是telnet密码,最后是enable密码Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\config.txt",Forreading, False) crt.Screen.Synchronous = TrueDO 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" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcrcrt.Screen.waitForString "#"'备份目前Startup配置str1 = "copy startup tftp://192.168.1.2/"str1 = str1 & "backup(" & params(0) &")" & ".cfg"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcrcrt.Screen.WaitForString "]?"crt.Screen.Send vbcr'备份完成后退出crt.Screen.waitForString "#",3crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Sub【示例三】批量添加静态arp:Sub MainConst ForReading = 1Dim fso,file,lineset fso = CreateObject("Scripting.FileSystemObject")set file = fso.OpenTextFile("arp.txt",ForReading,False)crt.Screen.Synchronous = TrueDO While file.AtEndOfStream <> Trueline = file.ReadLinecrt.Screen.Send line & vbcrcrt.Sleep 100loopcrt.Screen.Synchronous = FalseEnd Subarp.txt如下:arp static ip 12.1.1.025 mac 00:24:93:01:73:18interface ethernet 0/0/1 arp static ip 12.1.1.026 mac 00:24:93:01:73:19interface 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:20interface ethernet 0/0/1 arp static ip 12.1.1.034 mac 00:24:93:01:73:21interface ethernet 0/0/1。
SecureCRT脚本(VBS)运行
SecureCRT脚本(VBS)运⾏SecureCRT脚本(VBS)运⾏在SecureCRT运⾏脚本,⾃动收发数据监控记录运⾏状态。
参考:⽰例代码:#$language = "VBScript"#$interface = "1.0"'====本脚本说明:================================================='通信测试:'1、新建⽇志⽂件路径修改LOG_FILE_NAME宏定义的地址'2、使⽤Telnet登陆PPC后运⾏脚本,运⾏⼀段时间后错误信息将⾃动存储到1中定义的⽂本⽂件,若⽆则测试通过。
'const LOG_FILE_NAME="z:\secureCrt-log.txt"'================================================================Sub Main'================================================================crt.Screen.Synchronous = True'--------------------------------Dim erro_cerro_c = 1'----------------------------------------------------------------------------------1'loop'crt.Screen.Synchronous = False'crt.Sleep 1000crt.Screen.Send "d 0xfa050100" & chr(13)crt.Sleep 100crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "fa050100: 0000 0002 0002 28b0 0000 ffff"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 100'----------------------------------------------------------------------------------2'Do'INTIcrt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0049" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "004E" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0054" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0049" & chr(13)crt.Screen.Send "q" & chr(13)Read1RunRecd'Loop'-------------------------------------------Dim var1'定义循环次数var1=5Const Delay1 = 10Do'----------------------------------------------------------------------------------3'53410000crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0080" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0070" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0060" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0050" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13) crt.Screen.Send "0040" & chr(13)erro_c = Read2(erro_c )crt.Sleep Delay1'53410000crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0053" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0041" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0030" & chr(13)crt.Screen.Send "q" & chr(13)crt.Screen.Send "m 0xfa05010a" & chr(13)crt.Screen.Send "0000" & chr(13)crt.Screen.Send "q" & chr(13)crt.Sleep Delay1erro_c = Read2(erro_c )crt.Sleep Delay1'--------------------------------------------if var1=1 thenexit doend if'var1=var1-1Loop'crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Sleep 1000crt.Screen.Synchronous = FalseEnd Sub'===================================== Sub Read1crt.Sleep 100crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "0049"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 500crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "004b"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 500crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.waitForString "004b"crt.Screen.waitForString "value = 21 = 0x15"crt.Sleep 500End Sub'===================================== Function Read2(e_cnt)Const Delay2 = 100crt.Sleep 300crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Screen.waitForString "0053"If(crt.Screen.WaitForString ("0053",1)<>False) Then 'Msgbox "time yes"crt.Screen.waitForString "value = 21 = 0x15" ElseErroRecd e_cnte_cnt = e_cnt + 1crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.Send "d 0xfa050100" & chr(13)Read2 = e_cntexit function'Msgbox "time out"End Ifcrt.Sleep Delay2crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Screen.waitForString "004b"'crt.Screen.waitForString "value = 21 = 0x15"If(crt.Screen.WaitForString ("004b",1)<>False) Then'Msgbox "time yes"crt.Screen.waitForString "value = 21 = 0x15"ElseErroRecd e_cnte_cnt = e_cnt + 1crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.Send "d 0xfa050100" & chr(13)Read2 = e_cntexit function'Msgbox "time out"End Ifcrt.Sleep Delay2crt.Screen.Send "d 0xfa050100" & chr(13)'crt.Screen.waitForString "004b"'crt.Screen.waitForString "value = 21 = 0x15"If(crt.Screen.WaitForString ("004b",1)<>False) Then'Msgbox "time yes"crt.Screen.waitForString "value = 21 = 0x15"ElseErroRecd e_cnte_cnt = e_cnt + 1crt.Screen.Send "d 0xfa050100" & chr(13)crt.Screen.Send "d 0xfa050100" & chr(13)Read2 = e_cntexit function'Msgbox "time out"End Ifcrt.Sleep Delay2Read2 = e_cntEnd Function'=====================================Sub ErroRecd(e_cnt)'创建⽂件对象Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")'设置⽂件对象 1 只读模式;2 写模式;8 在⽂件末尾进⾏写操作Set file1 = fso.OpenTextFile(LOG_FILE_NAME,8, False)'file1.WriteLine("Erro"&e_cnt&":"&time)file1.WriteLine("Erro"&e_cnt&":"&date&" | "&time)'---------------------file1.WriteLine("---------st-----------")dim sdim cc=1dos = crt.Screen.Get(c,1,c,100)file1.WriteLine(s)if c=50 thenexit doend ifc=c+1loopfile1.WriteLine("---------end-----------")file1.WriteLine(" ")'---------------------------------------file1.Close '关闭⽂件'Msgbox timeEnd Sub'=======================================Sub RunRecd'创建⽂件对象Dim fsoSet fso = CreateObject("Scripting.FileSystemObject")'设置⽂件对象 1 只读模式;2 写模式;8 在⽂件末尾进⾏写操作Set file1 = fso.OpenTextFile(LOG_FILE_NAME,8, False)'file1.WriteLine("Erro"&e_cnt&":"&time)file1.WriteLine("|=======================================") file1.WriteLine("The vbs started@"&":"&date&" | "&time)'---------------------file1.WriteLine(" ")'---------------------------------------file1.Close '关闭⽂件'Msgbox timeEnd Sub操作步骤:1. 建⽴通信连接2. 运⾏脚本。
SecureCRT详细使用过程(整理版)
SecureCRT详细使⽤过程(整理版)SecureCRT的使⽤⽅法和技巧(详细使⽤教程)最近分了新任务做⼿机游戏的服务端,⽤到Linux系统,但是要控制服务器端的⼀些程序和监控要⽤到 SecureCRT这个软件,先前⼀点没接触过,其实跟windows的窗⼝差不多都是命令.SecureCRT是最常⽤的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx 服务器主机的软件,本⽂主要介绍SecureCRT的使⽤⽅法和技巧。
VanDyke CRT 和VanDyke SecureCRT是最常⽤的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件。
⼆者不同的是SecureCRT⽀持SSH (SSH1和SSH2)。
【概念解释】什么是SSH?SSH的英⽂全称是Secure Shell传统的⽹络服务程序,如:ftp和telnet在本质上都是不安全的,因为它们在⽹络上⽤明⽂传送⼝令和数据,别有⽤⼼的⼈⾮常容易就可以截获这些⼝令和数据。
⽽通过使⽤SSH 客户端与服务器端通讯时,⽤户名及⼝令均进⾏了加密,有效防⽌了对⼝令的窃听。
同时通过SSH的数据传输是经过压缩的,所以可以提⾼数据的传输速度,既然如此我们为什么不使⽤它呢。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。
⾄于具体如何安装服务器端,普通⽤户就不需要关⼼了。
⼀、安装⾸先要下载SecureCRT,⽬前最新的版本为6.1.3 (截⽌到2008年2⽉,其破解版本TBE或AGAiN),我们以5.53版为例进⾏介绍,下载安装⽂件scrt553.exe和破解⽂件keygen.exe。
安装过程很简单,运⾏scrt553.exe,只要“下⼀步”即可,安装过程中可以看到SecureCRT⽀持以下协议:SecureCRT使⽤说明- 脚本之家安装完成后,第⼀次启动SecureCRT会有如下提⽰:SecureCRT使⽤说明- 脚本之家⽤户需要指定⼀个⽬录,⽤来存放SecureCRT的配置信息。
使用 SecureCRT 批处理备份锐捷交换机配置脚本
使用SecureCRT 批处理备份锐捷交换机配置脚本已测试了SecureCRT 脚本批量执行备份锐捷交换机配置文件的功能。
此脚本可以根据你的需要修改,改成其他功能,希望有需要的同学扩展思路。
使用SecureCRT 批处理备份所有交换机配置的脚本,使用方法:1、在 C 盘新建一个文件夹,命名为SW_bak,打开文件夹,新建一个文本文件swlist.txt,编辑并保存这个文本文件.每行输入4 列分别是:交换机IP 用户名密码enable密码;例如:192.168.11.1 root password password192.168.12.1 root password password(有多少交换机就写多少行)2、新建一个文本文件,将下面的代码(两条分割线内的内容,不包括分割线)复制到文本文件内,保存关闭。
将文本文件重命名为:备份交换机配置批处理.vbs# $language ="VBScript"# $interface = "1.0"'本脚本示范:从一个文件里面自动读取设备IP 地址,密码等,自动将设备配置备份Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("c:\ SW_bak\swlist.txt ",Forreading,False)crt.Screen.Synchronous = TrueDO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数交换机IP 用户名密码enable密码;params = Split (line)crt.session.LogFileName = " c:\ SW_bak\log\20120713\" & params(0) & ".txt"crt.session.Log(true)'Telnet 到这个设备上crt.Session.Connect "/TELNET " & params(0)'输入Username 密码crt.Screen.WaitForString " Username:"crt.Screen.Send params(1) & vbcr'输入telnet 密码crt.Screen.WaitForString "Password:"crt.Screen.Send params(2) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params(3) & vbcrcrt.Screen.waitForString "#"'备份目前runing-config 配置str1 = "show run"crt.Screen.Send str1 & vbcrcrt.Screen.WaitForString " --More-- "crt.Screen.Send " & vbcr " '备份完成后退出crt.Screen.waitForString "!" & vbcrlf & "end"crt.Session.Disconnect loopcrt.Screen.Synchronous = False End Sub复制备份交换机配置批处理.vbs 到c:\ SW_bak\ 文件夹内;3、在c:\ SW_bak\ 文件夹中新建一个log 文件夹,用于保存配置文件。
利用SecureCRT实现交换机自动登录脚本
crt.Screen.Send (params[3] + "\r");
crt.Screen.WaitForString( ">");
crt.Screen.Send ("sys" + "\r");
}
}
}
运行效果图:
选择脚本,并执行代码即可。
输入username2即可登录完成。
注:至此已完,我是用来登录华为的交换机的,当然还可以登录中兴的9806H等等,=这样的话可以少敲键盘,也可以在此基础上进行对所有的交换机进行批量备份,批量配置等等。以后会放出。很多secureCRT脚本是用vbs写的,很多我参照并用javascript重写了。作者:鲍继川邮箱:bc5367@多谢指教
192.168.1.11 username2password2supassword2
中间是空格,以方便读取。先输入用户名比如username2后,脚本自动去查找username2,然后自动telnet 192.168.1.11这个ip地址,后自动输入username2,password2,supassword2后输入sys就完了。
crt.Screen.Send(params[1]+"\r");
crt.Screen.WaitForString( "Password:");
crt.Screen.Send(params[2] + "\r");
crt.Screen.WaitForString( ">");
securecrt使用教程、SecureCRT配置详细图文教程[1](2021年整理精品文档)
(完整word)securecrt使用教程、SecureCRT配置详细图文教程编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word)securecrt使用教程、SecureCRT配置详细图文教程)的内容能够给您的工作和学习带来便利。
同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。
本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word)securecrt使用教程、SecureCRT配置详细图文教程的全部内容。
securecrt使用教程、SecureCRT配置详细图文教程Secure CRT是一款支持SSH2、SSH1、Telnet、Telnet/SSH、Relogin、Serial、TAPI、RAW 等协议的终端仿真程序,最吸引我的是,SecureCRT 支持标签化SSH 对话,从而可方便地管理多个SSH 连接,设置项也极为丰富。
简单的说是Windows下登录UNIX、Linux服务器主机的软件。
SecureCRT支持SSH,同时支持Telnet和rlogin协议。
SecureCRT是一款用于连接运行包括Windows、UNIX、VMS的理想工具.通过使用内含的VCP命令行程序可以进行加密文件的传输.有流行CRT Telnet客户机的所有特点,包括:自动注册、对不同主机保持不同的特性、打印功能、颜色设置、可变屏幕尺寸、用户定义的键位图和优良的VT100、VT102、VT220、ANSI竞争,能从命令行中运行或从浏览器中运行,其它特点包括文本手稿、易于使用的工具条、用户的键位图编辑器、可定制的ANSI颜色等.SecureCRT的SSH协议支持DES,3DES和RC4密码和密码与RSA鉴别.1、SecureCRT下载2、SecureCRT 配置颜色直接修改全局选项,以免每加个服务器都要重新设置一次:全局设置:键盘方案的选择:终端——》仿真终端选择“Linux",勾选“ANSI颜色” 和“使用颜色方案”,终端颜色配置请见下面后续。
使用SecureCRT批处理备份所有交换机路由器配置脚本
使用SecureCRT比处理备份所有交换机路由器配置脚本小弟测试了SecureCRT脚本批量执行备份cisco交换机或者路由器配置文件的功能。
测试通过(成功批量备份28 台交换机,时间小于 1 分钟)。
此脚本可以根据你的需要修改,改成其他功能,希望有需要的同学扩展思路。
使用SecureCRT比处理备份所有交换机配置的脚本,使用方法:1、在D盘新建一个文件夹,命名为SWbackup打开文件夹,新建一个文本文件list.txt,编辑并保存这个文本文件,每行输入3列分别是:交换机ip 密码enable 密码;例如:192.168.1.1cisco cisco192.168.1.2cisco cisco(有多少交换机就写多少行)2、新建一个文本文件,将下面的代码(两条分割线内的内容,不包括分割线)复制到文本文件内,保存关闭。
将文本文件重命名为:备份所有交换机配置批处理脚本.vbs (注意要现显示文件后缀名才能修改)---------- # $language = "VBScript"# $interface = "1.0"'本脚本示范:从一个文件里面自动读取设备IP 地址,密码等,自动将设备配置备份Sub Main'打开保存设备管理地址以及密码的文件Const ForReading = 1, ForWriting = 2, ForAppending = 8Dim fso,file1,line,str1,paramsSet fso = CreateObject("Scripting.FileSystemObject")Set file1 = fso.OpenTextFile("d:\SWbackup\list.txt",Forreading, False) crt.Screen.Synchronous = True DO While file1.AtEndOfStream <> True'读出每行line = file1.ReadLine'分离每行的参数IP地址密码En密码params = Split (line)crt.session.LogFileName = "d:\SWbackup\log\\" & params(0) & ".txt"crt.session.Log(true)crt.Session.Connect "/TELNET " & params(0)crt.Screen.WaitForString "Password:"crt.Screen.Send params(1) & vbcr'进特权模式crt.Screen.Send "enable" & vbcrcrt.Screen.WaitForString "Password:"crt.Screen.Send params (2) & vbcr crt.Screen.waitForString "#"' 备份目前runing-config 配置str1 = "show run"crt.Screen.Send str1 & vbcr crt.Screen.WaitForString " --More-- "crt.Screen.Send"" & vbcr'备份完成后退出crt.Screen.waitForString "!" & vbcrlf & "end"crt.Session.Disconnectloopcrt.Screen.Synchronous = FalseEnd Sub'list.txt 需要先做好。
SecureCRT配置调用JS脚本
SecureCRT配置调⽤JS脚本1.在状态栏了调出button barvi JumpProbe_ssh.js# $language = "JScript"# $interface = "1.0"// Connect using a pre-defined session.function main() {var crt_promp,devicename,prompt_back;var resid = crt.Dialog.Prompt("请输⼊设备ID: ", "DeviceID", "", 0);if(resid == "" || undefined == resid) {crt.Dialog.MessageBox("请输⼊正确设备ID!");return ;}//读取设备所在采集机并跳转JumpProber(resid);//读取var res_info = new Object;var ret = GetResInfo(resid, res_info);if(ret < 0) {crt.Dialog.MessageBox("获取资源信息失败,⽆法登陆资源!");return;}}function JumpProber(resid){var crt_promp = GetPrompt();var grep_cmd = "grep "+resid+" /slview/nms/cfgall/devgrp.PRS*";crt.Screen.send(grep_cmd);crt.Screen.sendkeys("{ENTER}");var result;if(result = crt.Screen.ReadString(crt_promp,30)) {result = result.replace(/grep.*[\n|\r]+/,"");result = result.replace(/^\s*/,"");var array = result.split(" ");if(array.length <= 2 || undefined == array[1] || "" == array[1] || !array[1].match(/PRS\w+/)){ return;}var grep_cmd = "grep "+array[1]+" /slview/nms/cfg/probe.ini";crt.Screen.send(grep_cmd);crt.Screen.sendkeys("{ENTER}");if(result = crt.Screen.ReadString(crt_promp,30)) {result = result.replace(/grep.*[\n|\r]+/,"");result = result.replace(/^\s*/,"");array = result.split(" ");if(array.length >= 2 && undefined != array[1] && array[1] != "" &&array[1].match(/^\d+\.\d+\.\d+\.\d+/) && array[1] != "127.0.0.1") {var ssh_cmd = "ssh "+array[1];crt.Screen.send(ssh_cmd);crt.Screen.sendkeys("{ENTER}");RETRY:for (var i=1;i<=3;i++) {while(result = crt.Screen.WaitForStrings("(yes/no)?","assword:",">","#","$",5)) { if(result == 1) {crt.Screen.send("yes");crt.Screen.sendkeys("{ENTER}");continue;}else if(result == 2) {var passwd_host = crt.Dialog.Prompt("请采集机"+array[1]+"密码: ", "", "", 0); if(passwd_host == undefined) {crt.Screen.send("slview");}else{crt.Screen.send(passwd_host);}crt.Screen.sendkeys("{ENTER}");continue;}else if(result > 2){break;}else{continue RETRY;}}}//重试3次}}}return 0;}function GetResInfo(resid, res_info){var crt_promp = GetPrompt();var grep_cmd = "grep "+resid+" /slview/nms/cfg/devcol* /slview/nms/cfgall/devcol*";crt.Screen.send(grep_cmd);crt.Screen.sendkeys("{ENTER}");var result;if(result = crt.Screen.ReadString(crt_promp,30)) {//crt.Dialog.MessageBox(result);var array = result.split(";;");res_info["LoopAddress"] = array[1];res_info["Username"] = array[4];res_info["Password"] = array[5];//密码加密?if(res_info["Password"].match(/^\w{9,}/)) {var cmd = "/slview/nms/bin/DESConvertTest.pl "+res_info["Password"];crt.Screen.send(cmd);crt.Screen.sendkeys("{ENTER}");result = crt.Screen.ReadString(crt_promp,5);result = result.replace(/^.*[\n|\r]*/,"");result = result.replace(/^\s*/,"");var array = result.split(/\s/);res_info["Password"] = array[0];}}if(undefined == res_info["LoopAddress"]) {return -1;}return 0;}function LogoutDev(crt_promp,prompt_back, devicename){var quit_cmds = ["quit","exit","logout"];if(devicename != "") {prompt_back = prompt_back + devicename;}var cmd_index = 0;crt.Screen.send(quit_cmds[0]);crt.Screen.sendkeys("{ENTER}");while( (++cmd_index < quit_cmds.length)) {var ret = crt.Screen.WaitForStrings(crt_promp,prompt_back,5);if(ret == 2) {crt.Screen.send(quit_cmds[cmd_index]);crt.Screen.sendkeys("{ENTER}");}else{return;}}}function LoginDev(res_info){var host = res_info["LoopAddress"];var user = res_info["Username"];var passwd = res_info["Password"];//获取终端等待提⽰符var crt_promp = GetPrompt();var cmd = "telnet "+host;crt.Screen.Send(cmd);crt.Screen.sendkeys("{ENTER}");var getname_prompt = "";RETRY:for (var i=1;i<=3;i++) {var result = 0;while(result = crt.Screen.WaitForStrings("sername:","ogin:","assword:",">","#","$",5)) {//crt.Dialog.MessageBox(result);//发现有错误则重新等待特殊提⽰符var result_err = crt.Screen.WaitForStrings("Tacacs server reject","Error:",1); if(result_err >= 1) {continue;}//crt.Dialog.MessageBox("sleep....");if(result == 1 || result == 2) {//crt.Dialog.MessageBox("wait 'sername:',now send '"+user+"'");crt.Screen.Send(user);crt.Screen.sendkeys("{ENTER}");continue;}else if(result == 3) {//crt.Dialog.MessageBox("wait 'assword:',now send '"+passwd+"'");crt.Screen.Send(passwd);crt.Screen.sendkeys("{ENTER}");continue;}else if(result == 4) {getname_prompt = ">";break RETRY;}else if(result == 5) {getname_prompt = "#";break RETRY;}else if(result == 6) {getname_prompt = "$";break RETRY;}else{continue RETRY;}}}devicename = GetDevName(getname_prompt);return [crt_promp,devicename,getname_prompt];}function GetPrompt(){var getname_prompt = "";crt.Screen.sendkeys("{ENTER}");if(result = crt.Screen.WaitForStrings(">","#","\n$","$",5)) {if(result == 1) {getname_prompt = ">";}else if(result == 2) {getname_prompt = "#";}else if(result == 3) {getname_prompt = "\n$";}else if(result == 4) {getname_prompt = "$";}else{crt.Dialog.MessageBox("为⾃动获取到提⽰符,使⽤默认:'>'");getname_prompt = ">";}}return getname_prompt;}function GetDevName(getname_prompt){//登陆成功获取设备名称var devicename ;if(getname_prompt == "" || undefined == getname_prompt) {getname_prompt = GetPrompt();}var prompt_front = ["<","@","\n"];crt.Screen.sendkeys("{ENTER}");if(crt.Screen.ReadString("<","@","\n", 5) && (devicename =crt.Screen.ReadString(getname_prompt, 5)) ) {if(ret = devicename.match(/\n/)) {var array_tmp = devicename.split(/<|@|\n|\s/);devicename = array_tmp[array_tmp.length - 1];}//crt.Dialog.MessageBox("devicename:"+devicename);//while(crt.Screen.ReadString(getname_prompt, 1)){}}else{//crt.Dialog.MessageBox("获取设备名称失败,⽂件名称使⽤临时⽂件:tmp.txt!"); devicename = "";}return devicename;}function GetCmdRetbyCmd(cmd, prompt_back, prompt_more, timeout){var crt_version = crt.version;var result = "";crt.Screen.Send(cmd);crt.Screen.sendkeys("{ENTER}");while(result += crt.Screen.ReadString(prompt_back,prompt_more,timeout)) {if(result.indexOf(prompt_more) >= 0){crt.Screen.Send(" ");}else{result += prompt_back;//crt.Dialog.MessageBox(result);break;}}return result;}。
SecureCRT设置教程之欧阳引擎创编
转帖】SecureCRT设置教程欧阳引擎(2021.01.01)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的设置
SecureCRT的设置SecureCRT的设置VanDyke CRT 和VanDyke SecureCRT是最常用的终端仿真程序,简单的说就是windows下登录UNIX 或Liunx服务器主机的软件。
二者不同的是SecureCRT支持SSH∗(SSH1和SSH2)。
本文主要介绍SecureCRT的使用方法和技巧。
∗[概念解释]什么是SSH?SSH的英文全称是Secure Shell。
传统的网络服务程序,如:ftp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。
而通过使用SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。
同时通过SSH的数据传输是经过压缩的,所以可以提高数据的传输速度,既然如此我们为什么不使用它呢。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。
至于具体如何安装服务器端,普通用户就不需要关心了。
☺一、安装1、安装首先要下载SecureCRT,目前最新的版本为6.0 (截止到2008年1月,其破解版本还未出现),我们以5.53版为例进行介绍,下载安装文件scrt553.exe和破解文件keygen.exe。
安装过程很简单,运行scrt553.exe,只要“下一步”即可,安装过程中可以看到SecureCRT支持以下协议:安装完成后,第一次启动SecureCRT会有如下提示:用户需要指定一个目录,用来存放SecureCRT的配置信息。
此目录默认为C:\Documents and Settings\用户名\Application Data\VanDyke\Config,如果是升级SecureCRT需要保持此文件夹与旧版本一致,如果重装系统,一定要备份此目录。
如果需要更改,启动SecureCRT后点击Options => Global ptions => General修改Configuration fol der即可。
- 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利用率
'内存利用率检查
'端口运行状态检查
'端口数据收发状态检查
'电源使用情况检查。