关于SecureCRT的VBScript脚本使用心得
利用SecureCRT的脚本功能自动定时执行任务
利⽤SecureCRT的脚本功能⾃动定时执⾏任务SecureCRT是⼀款仿真终端⼯具,常⽤来telnet到路由器或交换机上,它还⽀持VBscript和Jscript脚本。
下边讲述⼀种在WINDOWS下利⽤SecureCRT的脚本功能⾃动定时执⾏⼀些登录到路由器或交换机来执⾏的任务:1.写好要SecureCRT执⾏的脚本,可登录执⾏任何操作。
如se800.vbs,保存在d:\se800下。
内容附在最后。
2.写好启动SecureCRT执⾏脚本的批处理⽂件。
如add_cmd.bat,保存在d:\se800下内容如下:d:cd \se800"C:\Program Files\SecureCRT\SecureCRT.EXE" /T /SCRIPT se800.vbs3.在WINDOWS的控制⾯板的任务计划⾥增加任务,如在23:30执⾏add_cmd.bat,⼤功告成。
====================se800.vbs的内容:====================# $language = "VBScript"# $interface = "1.0"Function my_Date()dim y,m,d,h,mmDim nowDate,mytimenowDate=Now()mytime=time()y=Year(nowDate)m=Month(nowDate)d=Day(nowDate)h=hour(mytime)mm=minute(mytime)my_Date=y & "-" & m & "-" & dEnd FunctionSub mainDim fso, fHost,fCMDbsn,fCMDscs, strLineHost,strLineCommand,strLogfile,strArrayConst ForReading = 1Const Hostip=0Const user=1Const password=2Const superpwd=3Const hostname=0Const NodeType=4Const my_user="jhxsy"Const my_pass="2381654"Const ScriptPath="D:\se800\"Const LogPath="D:\se800\log\"Set fso = CreateObject("Scripting.FileSystemObject")Set fHost = fso.OpenTextFile(ScriptPath& "ip.txt", ForReading, 0) 'Do While fHost.AtEndOfStream <> Truecrt.Screen.Synchronous = TruestrLineHost = Trim(fHost.Readline ) '获取fhost⽂件中的⼀⾏,如192.168.0.9 null password en_pwd BASstrArray=split(strLineHost,vbtab,-1) '按tab将获取的⾏分割成⼀个数组strArray[0]=192.168.0.9 .... strArray[4]=BAS strLogfile=LogPath & strArray(hostname)& "-" & my_date() &".txt"crt.Session.LogFileName = strLogfilecrt.Session.Log Truecrt.Session.Connect "/telnet" & " " & strArray(Hostip) & vbcr 'telnet strArray[0] vbcr=回车crt.screen.waitforstring "login:"crt.screen.send my_user & vbcr 'strArray(user) & vbcrcrt.screen.waitforstring "assword:"crt.screen.send my_pass & vbcrIf strArray(NodeType)="BAS" ThenSet fCMDbsn=fso.OpenT extFile(ScriptPath& "cmd.txt", ForReading, 0) '如果是bas 打开cmd.txt⽂件并按forreading⽅式读取Do While fCMDbsn.AtEndOfStream <> True '如果没结束strLineCommand=Trim(fCMDbsn.Readline)'获取读取的⾏Do While strLineCommand="wait"'?不解crt.sleep 5000strLineCommand=Trim(fCMDbsn.Readline)Loopcrt.Screen.WaitforString "#"'等待出现超级权限的提⽰crt.Screen.Send strLineCommand & vbcr'发送命令Call CheckEnd()LoopSet fCMDbsn=nothingElseSet fCMDscs=fso.OpenT extFile(ScriptPath& "cmdscs.txt", ForReading, 0)Do While fCMDscs.AtEndOfStream <> TruestrLineCommand=Trim(fCMDscs.Readline)crt.Screen.WaitforString ">"crt.Screen.Send strLineCommand & vbcrcrt.Screen.Send "y" & vbcrLoopSet fCMDscs=nothingEnd If'Logout nodecrt.screen.waitforstring "#"'crt.Session.Log Falsecrt.screen.send " exit" & vbcr'Stop log file action'crt.screen.waitforstring "$"'crt.screen.send vbcrcrt.Session.Log False'crt.screen.send vbcrcrt.Session.Disconnectcrt.Screen.Synchronous = FalseLoopSet fso=nothingcrt.quitEnd SubSub CheckEnd()Do Until crt.Screen.WaitForString ("#" , 1)=Truecrt.Screen.Send " "Loopcrt.Screen.Send vbcrExit SubEnd Sub经常遇到需要对⼀批⽹络设备进⾏同⼀种操作的情况,⽐如备份,或者查找arp表等,⽤telnet⼀个个登上去看确实⽐较⿇烦,于是想到是否有⾃动化的办法来做,编程序太⿇烦改起来不⽅便,每天都在⽤securecrt这个软件做telnet客户端,有⼀次⽆意间在软件⽬录下发现⼀些脚本,原来securecrt也可以⽤脚本,于是有了下⾯这个脚本,⽤来⾃动登录到设备上去执⾏某个操作,并把屏幕内容记录到⽇志⽂件中供进⼀步处理。
通过SecureCRT自动批量备份交换机的vbs脚本
'读入登录密码
crt.Screen.WaitForString "Password:"
crt.Screen.Send params(2) & vbcr
crt.Screen.waitForString "#"
crt.session.LogFileName = "D:\SecureCRT\Data\log\" & params(3) & params(4) & params(5) & ".txt"
crt.session.Log(true)
'Telnet到这个设备上,也可以修改为ssh,参数参考crt文档
End Sub
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso,file1,line,str1,params
Set fso = CreateObject("Scripting.FileSystemObject")
Set file1 = fso.OpenTextFile("D:\SecureCRT\Data\scripts\list.txt",Forreading, False)
crt.Screen.Synchronous = True
DO While file1.AtEndOfStream <> True
'读出每行
line = file1.ReadLine
'分离每行的参数 IP地址params(0) 登录用户名params(1),密码params(2),备份文件命名规则params(3)等
SecureCRT的几个技巧
SecureCRT的几个技巧SecureCRT可以说是Linux远程终端的代名词,关于它的一些技巧必须掌握1、解决中文乱码登陆主机,运行locale命令,确定语言选项LANG是否为zh_CN.gb2312 或者en_US.UTF-8,如果不是则修改/etc/sysconfig/i18n文件,把LANG改成支持UTF-8的字符集如:LANG=”zh_CN.UTF-8″或者是LANG=”en_US.UTF-8″然后修改SecureCRT的设置,选项->会话选项->外观->字符编码->uft-8退出重新登陆即可。
2、Backspace使用SecureCRT连接到一台安装有Oracle DB 10g的RHEL6.1的机器,linux使用的shell是默认的bash。
在bash提示符下,使用Del键或者Backspace键都能删除光标左右的字符,但是一旦进入sqlplus之后,只能使用Del键来删除光标左侧的字符,使用Backspace键则显示^H,使用ctrl+H也能删除字符。
如果要在sqlplus下仅仅使用Backspace来删除字符,那么有两种方法:第一种是使用stty命令重新定义^H,可以在使用sqlplus之前执行stty erase ^H,也可以把这一句放到Linux用户的.bash_profile文件中。
修改后必须执行 . .bash_profile使用命令生效。
第二种是使用SecureCRT的设置,在会话属性的Terminal->Emulation->Mapped Keys中,选中Backspace sends delete或Delete sends backspace中的任何一个,并确保另一个不被选中。
此二种方法即可解决backspace出现乱码问题。
3、SecureCRT快捷键标签页切换:Ctrl+T ab全屏:Atl+Enter。
巧用SecureCRT的按钮功能
巧用CRT的按钮功能1、CRT的按钮功能能做什么?最直接的使用就是可以取代频繁的输入设备帐号密码,前提是帐号密码要统一。
2、先编写好按钮脚本,模版如下:# $language = "VBScript"# $interface = "1.0"Sub Maincrt.sleep 10crt.Screen.Send "XXX" & vbCRcrt.sleep 10crt.Screen.Send "XXX" & vbCRcrt.sleep 10crt.Screen.Send "XXX" & vbCRcrt.sleep 10crt.Screen.Send "XXX" & vbCRcrt.sleep 10End Sub解释:请在上述代码中XXX的位置上替换为你们帐号密码,比如思科设备的帐号是cisco,密码是123,enable密码是ccie,那么此脚本就修改为:# $language = "VBScript"# $interface = "1.0"Sub Maincrt.sleep 10crt.Screen.Send "cisco" & vbCRcrt.sleep 10crt.Screen.Send "123" & vbCRcrt.sleep 10crt.Screen.Send "enable" & vbCRcrt.sleep 10crt.Screen.Send "ccie" & vbCRcrt.sleep 10End Sub保存为TXT文档即可。
3、CRT按钮功能的具体设置A、CRT版本要求:5.1版本不支持,最好用6.0以上的版本,我使用的是6.7.0;B、点主菜单“view(查看)”-----勾选“button bar”(低版本的没有此选项);C、在显示出来的button bar工作栏中,右键“new button”-----function下拉菜单中选“Run script”-----Run script中选择之前编写好的按钮脚本文件的路径(看不到TXT文件,文件类型要选“all”)-----点"打开";D、“Label”中填的就是按钮的名称,以区分识别不同的按钮:E、填好“Label”后点“OK”,设置完成!效果图:。
securecrt 使用技巧总结[转]
5、交互窗口,在查看->交互窗口,会在下面显示交互的窗口,在空白处点击右键,选择将交互发送至所有标签,这样在交互窗口输入的命令,会同时在多个标签中同时执行,有时候为了验证配置情况,需要各自show run,有了这种方法,就可以一次性搞定所有的输入了。
6、脚本录制,脚本->开始录制脚本,在配置之前打开脚本录制,结束后停止脚本录制,保存成一个脚本文件,关闭软件后,重新打开执行之前的脚本,相当于由机器自动完成了之前的所有配置。我个人习惯于将繁琐的输入密码的过程录制一份脚本,每次启动会话执行该脚本直接进入到conf模式下,不过这样的缺点是,密码将以明文形式保存在脚本中,不够安全。
7、键盘映射器,在选项->全局选项->默认会话设置->编辑默认的设置->找到映射键,就可以设定快捷键了,与按钮栏相类似,输入一个键,执行一个动作。
8、锁定会话,文件->锁定会话,文件->解锁会话。可以用锁定会话,在个人离开后,避免被别人误操作。可以锁定一个或多个session。
9、sftp,在远程操作linux系统时,经常遇到需要与windows交换文件的问题,之前我的做法是使用rz命令,后来发现不是每个版本都支持rz命令,有时候搭建一个vsftpd临时解决一下,但所有的都不如sftp来的容易,secureCRT在5.5版本还不支持sftp,升级至6.2意外的发现有了sftp的支持,快捷键是alt+p,心情大爽。
使用SecureCRT时,让SecureCRT自动生成当时日期文件,并保存
我使用的是SecureCRT 5.1.3汉化版,目前汉化版中比较哈的
一般的日志文件都是只能自动记录,不能准确的显示出操作时间,有点美中不足
捣鼓一段时间后发现,可以从文件名上想办法。
securecrt vbs if 判断
序号标注太过冗长,按普通文本撰写。
一、概述在使用SecureCRT软件时,经常需要自动化执行一些操作,比如根据服务器返回的信息进行判断并执行相应的操作。
VBScript是一种在Windows评台上非常流行的脚本语言,可以方便地在SecureCRT中使用。
本文将介绍如何在SecureCRT中使用VBScript实现if判断的功能。
二、SecureCRTSecureCRT是一款由VanDyke Software公司开发的终端仿真软件,主要用于连接远程服务器进行管理和操作。
用户可以通过SecureCRT 连接SSH、Telnet、Rlogin等各种类型的远程服务端,并在本地窗口中进行操作。
SecureCRT提供了丰富的功能和API,使得用户可以自定义脚本来进行自动化操作。
三、VBScriptVBScript是一种基于Visual Basic的脚本语言,它是Windows操作系统中的一部分,可以方便地在Windows评台上执行。
VBScript语法简洁,适合用于编写各种脚本程序。
在SecureCRT中,用户可以使用VBScript来编写各种自定义脚本,实现自动化操作。
四、在SecureCRT中使用VBScript实现if判断在SecureCRT中,用户可以通过VBScript实现各种复杂的逻辑判断,并执行相应的操作。
下面将介绍一个简单的示例,在连接远程服务器后,根据服务器返回的信息判断是否连接成功,并输出相应的提示信息。
1. 编写VBScript脚本首先打开SecureCRT软件,在菜单栏中选择“Scripting”->“Script Engine”,在弹出的对话框中选择“VBScript”,点击“OK”按钮。
然后在脚本编辑器中编写如下代码:```vbscript' 判断服务器返回的信息If crt.Screen.W本人tForString("login:") Thencrt.Screen.Send "username" vbCrcrt.Screen.W本人tForString("password:")crt.Screen.Send "password" vbCrcrt.Screen.W本人tForString("$")crt.Screen.Send "echo connect success!" vbCrElsecrt.Screen.Send "echo connect f本人led!" vbCrEnd If```上述代码首先通过`crt.Screen.W本人tForString`方法等待服务器返回的字符串,然后根据字符串判断执行不同的操作。
全平台终端仿真工具SecureCRT使用总结
全平台终端仿真⼯具SecureCRT使⽤总结介绍适⽤于 Windows、Mac 和 Linux 的 客户端为计算机专业⼈⼠提供了坚如磐⽯的终端仿真,并通过⾼级会话管理以及多种节省时间和简化重复任务的⽅式提⾼了⼯作效率。
SecureCRT 为组织中的每个⼈提供安全的远程访问,⽂件传输和数据隧道。
SecureCRT ⽀持 SSH2、SSH1、Telnet、Telnet/SSH、Relogin、Serial、TAPI、RAW 等协议。
下载软件:官⽅学习⽂档:/See videos on the and the .认识 SecureCRT ⼯具栏1) File ⽂件Button FunctionConnect…连接,打开⼀个连接或者编辑已有的连接,创建新连接。
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 ⽂件中记录协议会话信息选项。
(包括客户端与主机互相连接时的⼀些信息内容)2) Edit 编辑:拷贝粘贴等。
3) view 视图:显⽰各种⼯具条。
4) Options 选项:包括全局选项和 Session 选项。
5) Transfer 传递⽂件:使⽤ Xmodem/Zmodem 上传下载⽂件。
6) Script 脚本:运⾏⼀个脚本⽂件,或记录⼀个新的脚本。
(类似 Word 中的宏功能)7) Tools ⼯具:键盘映射编辑,密钥⽣成⼯具等。
BAT调用SECURECRT的VBS脚本功能自动化LINUX系统健康检查
BAT调用SECURECRT的VBS脚本功能自动化LINUX系统健康检查最近负责管理的LINUX系统比较多,每天每台服务器登录检查一遍很烦。
就用BAT调用SECURECRT的VBS脚本,自动对所有服务器做自动检查。
为了便于修改检查脚本,LINUX检查脚本保存在本地,每次检查时,利用SECURECRT的SFTP功能上传到系统上,每次检查后再将检查日志下载到本地。
Srv.list主机列表文件需要检查的系统保存在svr.list文件中,文件格式为服务器的IP地址,SSH端口号,主机名为了方便选择需要检查的系统,有三个文件srv.list, srvPRD.list,srvALL.list,可以通过BAT的参数选择不同的服务器列表。
Dailycheck.batDailycheck.bat是系统执行系统检查时的启动脚本,可以输入一个参数选择需要检查的服务器列给C:\>dailycheck.bat ‐‐ 不加参数,检查svr.list中的服务器C:\>dailycheck.bat PRD ‐‐ 检查svrPRD.list中的服务器C:\>dailycheck.bat ALL ‐‐ 检查svrALL.list 中的服务器Dailycheck.bat 从srv.list中读取服务器的IP地址,SSH端口号,主机名称,和用户名名、密码一起传入SECURECRT,SECURENT再执行VBS脚本dailycheck.vbsREM DAILYCheck.bat@echo offSetlocal ENABLEDELAYEDEXPANSIONSet strDate=%date:~6,4%%date:~0,2%%date:~3,2%Set Checklog=d:\OScheck\os_dailycheck_%strDate%.logSet checkDir=d:\OSCheck\%strDate%REM====================================================================================================== set SvrList=d:\OSCheck\svr.listif "%1" == "PRD" (set SvrList=d:\OSCheck\svrPrd.listset Set Checklog=d:\OScheck\os_dailycheck_%strDate%_PRD.log)if "%1" == "ALL" (set SvrList=D:\OSCheck\svrAll.listSet Checklog=d:\OScheck\os_dailycheck_%strDate%_ALL.log)REM – 为了安全每次执行时输入用户名和密码,如果不想这么麻烦,可以直接设置好用户名和密码。
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的使用方法和技巧(详细使用教程)
SecureCRT的使用方法和技巧(详细使用教程)点评:SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件,本文主要介绍SecureCRT的使用方法和技巧VanDyke CRT 和 VanDyke SecureCRT是最常用的终端仿真程序,简单的说就是Windows下登录UNIX或Liunx服务器主机的软件。
二者不同的是SecureCRT支持SSH(SSH1和SSH2)。
本文主要介绍SecureCRT的使用方法和技巧。
软件下载地址SecureCRT 终端仿真程序中文绿色便携破解版SecureCRT 32位绿色便携特别版SecureCRT 64位绿色便携特别版【概念解释】什么是SSH?SSH的英文全称是Secure Shell传统的网络服务程序,如:ftp和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人非常容易就可以截获这些口令和数据。
而通过使用SSH客户端与服务器端通讯时,用户名及口令均进行了加密,有效防止了对口令的窃听。
同时通过SSH的数据传输是经过压缩的,所以可以提高数据的传输速度,既然如此我们为什么不使用它呢。
SSH是由客户端和服务端的软件组成的,有两个不兼容的版本分别是:1.x和2.x。
至于具体如何安装服务器端,普通用户就不需要关心了。
一、安装1、安装首先要下载SecureCRT,目前最新的版本为6.1.3 (截止到2008年2月,其破解版本TBE或AGAiN),我们以5.53版为例进行介绍,下载安装文件scrt553.exe和破解文件keygen.exe。
安装过程很简单,运行scrt553.exe,只要“下一步”即可,安装过程中可以看到 SecureCRT支持以下协议:安装完成后,第一次启动SecureCRT会有如下提示:用户需要指定一个目录,用来存放SecureCRT的配置信息。
此目录默认为C:\Documents and Settings\用户名\Application Data\VanDyke\Config,如果是升级SecureCRT需要保持此文件夹与旧版本一致,如果重装系统,一定要备份此目录。
SecureCRT中使用VBscript实例介绍
End If crt.Screen.send "888888" & VbCr crt.Screen.send "cd /home/etuser/sys/IMS009" & VbCr crt.Screen.send "killall imsd" & VbCr crt.Sleep(1) crt.Screen.send "./imsd" & VbCr crt.Sleep(1)
'进入 ims002 的目录
crt.Screen.Send "cd /home/etuser/sys/ims009 " & VbCr
'杀掉当前的 imsd 进程
crt.Screen.Send "killall imsd" & VbCr
'暂停 1 秒
crt.Sleep(1)
'启动 csd 进程
crt.Screen.Send "./imsd" & VbCr
'暂停 1 秒
crt.Sleep(1)
'------------------------------------------启动 ips002 实体---------------------------------------------------
crt.Screen.Send "ssh etuser@192.168.10.12" & VbCr If (Not crt.Screen.WaitForString("assword:",5)) Then
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 使用笔记
版本:20110315 v0.4 作者:gyhong gyh9711@ 文档中错别字较多,请见量
1. 介绍
无序 为什么选择 Secure Crt 而较少选择 putty ? 因 *nix 系统下有 expect 工具, Windows 系统下也有 expect,但功能有所弱化,还好 windows 系统下有 secure crt,其脚本支持 vbs 功能,因此功能也非常强大。且具备一些在*nix 系统下较难实现的功能,如与 excel/access 等结合使用。
海量IT类学习资源 尽在ITman论坛
简明: 程序使用到 vbs 类 对 crt ole 程序进行简单封装
3.3. VBS 实用代码与技术 3.3.VBS 3.3.1. 文件读写 3.3.2. 控制 Excel 常见方法
注:此资料来源于网络 (一) 使用动态创建的方法 首先创建 Excel 对象,使用ComObj: oExcel = CreateObject( "Excel.Application" ) 1) 显示当前窗口: oExcel.Visible = True 2) 更改 Excel 标题栏: oExcel.Caption = "应用程序调用 Microsoft Excel" 3) 添加新工作 簿: oExcel.WorkBooks.Add 4) 打开已存在的工作簿: oExcel.WorkBooks.Open( "C:\Excel\Demo.xls" ) 5) 设置第2个工作表为活动工作表: oExcel.WorkSheets(2).Activate 或 oExcel.WorksSheets( "Sheet2" ).Activate 6) 给单元格赋值: oExcel.Cells(1,4).Value = "第一行第四列" 7) 设置指定列的宽度(单位:字符个数) ,以第一列为例: oExcel.ActiveSheet.Columns(1).ColumnsWidth = 5 8) 设置指定行的高度(单位:磅) (1磅=0.035厘米) ,以第二行为例: oExcel.ActiveSheet.Rows(2).RowHeight = 1/0.035 ' 1厘米 9) 在第8行之前插入分页符: oExcel.WorkSheets(1).Rows(8).PageBreak = 1 ) 在第8列之前删除分页符: 10 10) oExcel.ActiveSheet.Columns(4).PageBreak = 0 ) 指定边框线宽度: 11 11) oExcel.ActiveSheet.Range( "B3:D4" ).Borders(2).Weight = 3 1-左 2-右 3-顶 4-底 5-斜( \ ) 6-斜( 计
secureCRT脚本----vbs语法
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 N ot objFso.FileExists(szSessionsFile) then ‘如果txt文件不存在,就报错并退出subcrt.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 subend 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 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:18 interface ethernet 0/0/1arp static ip 12.1.1.026 mac 00:24:93:01:73:19 interface ethernet 0/0/1arp static ip 12.1.1.027 mac 00:24:93:01:73:1a interface ethernet 0/0/1arp static ip 12.1.1.028 mac 00:24:93:01:73:1b interface ethernet 0/0/1arp static ip 12.1.1.029 mac 00:24:93:01:73:1c interface ethernet 0/0/1arp static ip 12.1.1.030 mac 00:24:93:01:73:1d interface ethernet 0/0/1arp static ip 12.1.1.031 mac 00:24:93:01:73:1e interface ethernet 0/0/1arp static ip 12.1.1.032 mac 00:24:93:01:73:1f interfaceethernet 0/0/1arp static ip 12.1.1.033 mac 00:24:93:01:73:20 interface ethernet 0/0/1arp static ip 12.1.1.034 mac 00:24:93:01:73:21 interface ethernet 0/0/1。
SecureCRT(英文)技巧总结
SecureCRT(英文)技巧总结一、安装和激活安装1、在/data/128681下载相关包激活工具,运行scrt622-x86.exe。
2、进入安装向导程序,默认下一步,直到安装完成既可以。
破解1、找到安装crt的目录。
C:\Program Files\VanDyke Software\SecureCRT2、把secureCRT-kg.exe放到安装crt的目录下,运行此程序点击patch按钮然后输入注册信息,点击Generate按钮,生成注册码。
3、把注册码输入应用程序。
点击Enter license Data。
4、点击完成SecureCRT及安装完成。
二、一些按钮的中文翻译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文件中记录协议会话信息选项。
(包括客户端与主机互相连接时的一些信息内容)2、Edit编辑拷贝粘贴等3、View视图显示各种工具条4、Options选项包括全局选项和Session选项5、 Transfer传递文件使用Xmodem/Zmodem上传下载文件6、Script.脚本运行一个脚本文件,或记录一个新的脚本。
(类似Word中的宏功能)7、Tools工具键盘映射编辑,密钥生成工具等8、 Help帮助三、创建一个普通的Session1、点击File→Connect,出现Connect窗口,反键Sessions,创建一个目录,名字叫linux。
secucrt使用技巧
secucrt使用技巧SecurCRT 是一种强大的终端仿真软件,可用于连接和管理远程计算机。
它具有许多强大的功能和技巧,下面是一些使用SecurCRT 的技巧和建议:1. 使用会话管理器:SecurCRT 具有一个方便的会话管理器,可以帮助您轻松地组织和管理您的会话。
您可以创建不同类型的会话,如 Telnet、SSH、Rlogin 等,然后将它们组织成树状结构,以便更轻松地定位和连接到特定的会话。
2. 自定义会话选项:在创建会话时,可以自定义会话选项以满足您的特定需求。
例如,您可以设置字体类型和大小、颜色方案、背景图片等。
此外,您还可以设置自定义键盘快捷键,以便更快地执行常用操作。
3. 使用标签页:SecurCRT 支持标签页功能,使您可以在同一窗口中同时打开多个会话。
使用标签页可以减少屏幕上的混乱,并提高操作效率。
您可以使用快捷键 Ctrl + T 来打开一个新的标签页。
4. 使用脚本:SecurCRT 可以通过脚本来自动化一些重复性的任务。
您可以使用 VBScript、JScript 或 Python 脚本来编写自己的脚本,以在需要时自动执行特定的操作。
脚本可以帮助您节省时间和精力,并提高工作效率。
5. 使用分屏功能:SecurCRT 具有一个方便的分屏功能,可以将一个会话分成多个窗口,以便同时查看和操作不同的内容。
您可以使用快捷键 Ctrl + B 来切换不同窗口之间的焦点。
6. 使用标记和注释:SecurCRT 可以帮助您在会话中标记和注释特定的行或文本,以便更容易地查找和定位重要信息。
您可以使用快捷键 Ctrl + M 进行标记,然后使用 Ctrl + Shift + N 进行导航到下一个标记。
7. 使用外部工具:SecurCRT 具有一个强大的外部工具功能,可以帮助您集成其他常用工具和脚本。
您可以配置外部工具来执行特定的任务,例如文件传输、压缩和解压缩等。
通过使用外部工具,您可以将 SecurCRT 与其他工具无缝集成,更快地完成工作。
利用VBScript 脚本功能提高信息网络日常维护工作效率
利用VBScript 脚本功能提高信息网络日常维护工作效率摘要:随着信息网络技术的发展,路由器、交换机等网络设备的日常维护工作量非常大,如:定期更改登录口令,实施访问控制列表等。
该文利用securecrt网管软件vbscript脚本功能,大大提高网管员的工作效率,节约时间,提高工作维护质量。
关键词:it运维;securecrt;vbscript中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)02-0420-03随着信息技术的发展,网络的安全性工作日益重要,江苏省电力公司在此方面也提出了较多的安全规范要求,如交换机、路由器配置文件定期备份、路由器维护口令定期更新、访问控制列表修改、空闲端口关闭、路由器日常状态巡检等操作需求。
镇江供电公司在完成该类需求工作时,进行了实践探索,最终解决了该问题,下面将实现过程和方法与其他同行进行分享。
1 网络日常维护流程下面以路由器配置文件定期备份及修改系统登录超时为例,在网络管理计算机手动telne登录到所需要配置和管理的目标路由器上,登录用户名、口令、超级用户口令后得到操作配置权限,执行相应的配置指令即可完成修改登录超时以及配置文件备份。
上述问题是实际工作的常见问题,任何一个管理员均可顺利完成。
但实际工作中,由于公司现有的网络设备本身及组网需求的特殊性,造成了整个数据网络中数据设备数量大、型号多、登录帐号不统一,命令集不一致。
如果纯采用人工方式按常规维护方式操作的话,工作量巨大,且极易出错。
目前公司数据网设备主要分三层,骨干层(江苏省电力公司管辖)、汇聚层(地区供电公司核心设备)、接入层(量大、型号多,手工处理较困难)。
前文描述可以看出,不管设备类型,登录账号、命令集情况,但修改登录超时以及保存配置文件的操作流程是一致的。
经过归纳,该流程是典型的过程型操作,用软件的方法能够很好的解决。
2 securecrt维护软件简介securecrt软件工具是常用的网管工具,采用其高级功能,将能大大提高工作效率。
SecureCRT
SecureCRT vbs脚本总结|版权声明:本⽂为博主原创⽂章,未经博主允许不得转载。
⼀、什么是SecureCRT?SecureCRT是⼀款PC上的终端通信软件,可以让我们从PC上控制、访问交换设备,⽀持常⽤的串⼝、telnet、ssh等通信⽅法。
⽐如我们可以⽤它通过串⼝与交换机的console⼝互相通信,⽤它通过telnet(TCP协议)与交换机的⽹⼝互相通信等。
⽬前,Crt⽀持脚本类型有:VBS、JS、python、Perl。
⼆、什么是VBS脚本?VBS全称Microsoft Visual Basic Script Editon,即 Visual Basic 脚本语⾔,区别于VB语⾔、C语⾔是编译后运⾏的,脚本语⾔不需编译(简单说就是.vbs源程序不需要编译成.exe)直接由Windows系统运⾏。
三、为什么使⽤为什么使⽤VBS?三、在⼯作中⾯对⼤量的⽹络设备,⽆论是设备开发、测试还是设备管理和配置等仅仅⼈⼯操作会⾮常耗时、费⼒,⽽VBS脚本可以⾮常⾼效的实现⾃动化配置,最⽅便的是它不需要专门的开发环境(记事本即可)。
四、如何编写如何编写VBS脚本四、1. 开发⼯具:任何⼀种⽂本编辑器都可以⽤来开发VBS开发,例如最简单的记事本2. ⽂件类型:保存为以.vbs为扩展名的⽂件3.注释:(以REM或'开头)的⾏在程序中不起作⽤4.变量赋值使⽤"=",变量在左,值在右边,以""包裹的字符为"字符串"5. VBS脚本语法不区分⼤⼩写,长语句换⾏⽤”_”6. VBS只有⼀种数据类型,那就是variant,根据上下⽂判断是数字还是字符串7. 脚本头部要添加如下语句表⽰以下是VBS脚本# $language = "VBScript" ‘表⽰SecureCRT使⽤的脚本引擎# $interface = "1.0" ‘表⽰SecureCRT的接⼝版本8. 主函数: 脚本内容以 main 函数作为执⾏⼊⼝基本⽤法⽤法脚本基本五、VBS脚本1.定义变量Dim a, b, c ‘声明变量a和变量ba = 1 ‘变量a赋值b = "hello" ‘变量b赋值2. 操作符四则运算:+、-、*、/⽐较运算:=、>、< 、>=、<=、<> ‘ “<>” 是”不等于”运算符逻辑运算:and、or、not连接字符串:&3. 条件语句If表达式then表达式为真时执⾏Else表达式为假时执⾏Endif----------------Select case表达式Case匹配执⾏Case匹配执⾏Case else皆不匹配执⾏End select4.循环语句For i = 1To10 ‘循环执⾏10次执⾏语句Next----------------while判断条件条件为真时循环Wend5. Sub过程(1).Sub 过程是包含在 Sub 和 End Sub 语句之间的⼀组 VBScript 语句(2).如果 Sub过程⽆任何参数,则 Sub 语句必须包含空括号 ()(3).Sub过程没有返回值,Sub不能放在表达式中(4).举例说明Public/Private Sub Test1_func(string1)MsgBox "hello, world " ‘输出字符串MsgBox "params = " & string1 ‘输出params的值End Sub(5).如何调⽤sub过程的两种⽅法Call Test1_func(“hello”) ‘使⽤ Call 语句,必须将参数包含在括号中Test1_func “hello” ‘参数不需要包含在括号中6. Function过程(1).Function 过程是包含在 Function 和 End Function 语句之间的⼀组 VBScript 语句(2).如果 Function过程⽆任何参数,则 Function语句必须包含空括号 ()(3).Function过程可以设置返回值, Function可以放在表达式中(4).举例说明Public/Private Function Test2_func(string2)MsgBox "hello, world " ‘输出字符串MsgBox "params = " & string2 ‘输出params的值Test2_func = True ‘设置返回值, 返回值的数据类型总是VariantEnd Sub(5).如何调⽤Function过程的两种⽅法Call Test2_func(“hello”) ‘使⽤Call语句,必须将参数包含在括号中Test2_func “hello” ‘参数不需要包含在括号中六、VBS常⽤函数1.字符串处理函数Len(string)‘返回字符串内字符的数⽬LCase/UCase(string) ‘返回字符串的⼩写/⼤写形式Left/Right(string,length) ‘返回指定数⽬的从字符串的左/右边算起的字符InStr(string1,string2) ‘返回某字符串在另⼀字符串中第⼀次出现的位置Trim(string)‘返回不带前导(LTrim)与后续空格(RTrim)的字符串CInt(value) ‘把vlaue值转换为Integer型(四舍五⼊)2.容错机制On Error Resume Next ‘后⾯代码错误会继续执⾏......szError = Err.Description ‘将错误表述信息放⼊变量szError中On Error Goto 0 ‘关闭容错机制七、SecureCRT内置对象SecureCRT 提供了内置对象与脚本交互,这些对象封装了属性与操作,可⽤来操纵程序⾏为。
SecureCRT中使用VBscript实例介绍
If (Not crt.Screen.WaitForString("assword:",5)) Then crt.Screen.Send "yes" & VbCr crt.Sleep(5)
End If
'输入密码
crt.Screen.send "888888" & VbCr
'开启同步模式
crt.Screen.Synchronous = True
'-----------------------------------------------启动 cs002 实体---------------------------------------------'进入 cs002 的目录
'------------------------------------启动 cs001 进程--------------------------------------------------------
crt.Screen.Send "ssh etuser@192.168.10.10" & VbCr If (Not crt.Screen.WaitForString("assword:",5)) Then
If (Not crt.Screen.WaitForString("assword:",5)) Then crt.Screen.Send "yes" & VbCr crt.Sleep(10)
End If crt.Screen.send "888888" & VbCr crt.Screen.send "cd /home/etuser/sys/IMS009" & VbCr crt.Screen.send "killall imsd" & VbCr crt.Sleep(1) crt.Screen.send "./imsd" & VbCr crt.Sleep(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Select case SwitchKey
case 1
MsgBox "思科设备"
case 2
MsgBox "华为设备"
case 3
MsgBox "华三设备"
case else
MsgBox "未知设备"
End Select
(3) 其实SecureCRT支持的脚本语言就是VBS,这个脚本语言与VB有较大的不同,对于界面的支持性较差。不过也有几个对话性的函数
'输入密码,回车
crt.screen.send "123456"
crt.screen.send Chr(13)
End Sub
2. 选择结构的脚本
if ... then ...else...结构和case结构见基础知识举例
3. 循环结构
关于SecureCRT的VBScript脚本使用心得
在SecureCRT中使用VBSCRIPT脚本,确实能够提高我们的工作效率,并且可以实现完全的自动化。
SecureCRT给我们提供了很好的平台——脚本工具制作和运行。下面就SecureCRT工具常用到的几个函数阐述如下:
1. 在SecureCRT里,用得最多的应该就是crt.Screen,基本上很多操作都是基于屏幕的返回字来决定下一步该作何操作:
WaitForString是有返回值的,返回值是True 或者 False。因此,可以根据返回值进行条件判断以确定一下条代码。例如:
If (crt.Screen.WaitForString ("current state : UP",1)<>False) Then
portStatus="PortUP"
r=inputbox("请输入正方形的边长:","求正方形面积的程序")
s=r*r
msgbox(s)
-------------------------------------------------------------------------------------------
语句结构:
crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
意思就是在5秒内有检测到相应的字符时,返回相应的索引号(索引号是从1开始的)。如果都没有检查到,则返回0.因此,该函数的使用可以如下:
Dim SwitchKey
SwitchKey=crt.Screen.WaitForStrings("cisco","huawei","H3C",5)
1. 顺序执行的脚本,举个网上泛滥的例子,那个自动登录系统的例子,稍加修改如下。
# $language = "VBScript"
# $interface = "1.0"
Sub Main
'连接主机192.168.0.2
crt.session.Connect9;等待出现登陆用户名提示login,等待时间是10s
crt.screen.WaitForString "login:",10
'输入用户名,回车
crt.screen.send "minico" & Chr(13)
'等待出现登陆密码提示login,等待时间是10s
crt.screen.WaitForString "Password:",10
<1>、InputBox :提示用户输入参数
temp = inputbox("提示用户你输入参数的名称","对话框的名称") :需要将输入的参数赋值给某一个参数进行使用。
<2>、输出函数 msgbox
msgbox “给用户输出的信息对话框”
eg.求正方形面积的脚本
dim r,s
(1):crt.Screen.WaitForString("KeyString",timewaiting)
该函数是单字符串判断,KeyString是需要查找的关键字,timewaiting是一个超时阀值,例如:crt.Screen.WaitForString("people:",5)该行代码的意思就是在5秒内没有检测到people:出现,就执行下一条语句,如果改成:crt.Screen.WaitForString("people:")那就是指直到people:出现才执行下一行代码。
Else
portStatus="PortDown"
End If
msgbox portStatus
这段代码用于判断端口状态情况并记录下来.
(2):crt.Screen.WaitForStrings("KeyString1","KeyString2",...,timeout)
用于多个字符串的判断,timeout的作用是一样的。例如: