SecureCRT vs PuTTY的核心壁垒:PuTTY完全没有脚本引擎,所有操作必须手动执行。SecureCRT内置脚本引擎支持VBScript、JScript、Python、PerlScript多种语言,可编写自动化脚本完成批量部署、配置备份、日志收集等运维任务——这是它作为商业软件的核心价值之一。
本教程基于 SecureCRT 的脚本引擎功能,介绍如何使用脚本实现自动化运维。VanDyke Software官网(vandyke.com)也提供了Python脚本示例供参考。下文将从基础到进阶,覆盖自动登录、批量配置、设备巡检等实用场景。
脚本引擎概述
SecureCRT 支持以下脚本语言,每种语言有各自的适用场景:
| 脚本语言 | 文件扩展名 | 适用场景 | 学习难度 |
|---|---|---|---|
| VBScript | .vbs | Windows环境、简单自动化、自动登录 | 低 |
| JScript | .js | Web管理员习惯JS语法 | 中 |
| Python | .py | 复杂逻辑、数据处理、API调用 | 中 |
| PerlScript | .pl | 文本处理、正则匹配(历史用户) | 高 |
如何运行脚本
1. Script → Run → 选择脚本文件(或直接拖拽 .vbs/.py 文件到SecureCRT窗口)
2. 也可以从命令行启动:`SecureCRT.exe /SCRIPT "D:\scripts\auto_login.vbs"`
3. Script → Run Recent → 快速重新运行最近使用过的脚本
SecureCRT脚本对象模型
所有脚本语言共享同一套 SecureCRT 对象模型,核心对象包括:
- crt.Screen:读取终端屏幕内容、等待特定字符串出现
- crt.Screen.Send:向远程设备发送命令
- crt.Session:当前会话的连接/断开/日志控制
- crt.Dialog:弹出消息框或输入框与用户交互
- crt.FileTransfer:文件上传下载(SFTP)
在CSDN和知乎的竞品教程中,大多只覆盖了VBScript的基础发送命令;本教程将同时介绍Python脚本的高级应用。
编写自动登录脚本
自动登录是脚本自动化最常见的应用场景。以下是一个 VBScript 自动登录脚本示例:
' SecureCRT 自动登录脚本 (VBScript)
' 保存为 auto_login.vbs
Sub Main()
' 建立SSH连接
crt.Session.Connect "/SSH2 192.168.1.100"
' 等待用户名提示
crt.Screen.WaitForString "login:"
crt.Screen.Send "root" & vbCr
' 等待密码提示
crt.Screen.WaitForString "Password:"
crt.Screen.Send "your_password" & vbCr
' 等待登录成功提示
crt.Screen.WaitForString "$"
' 可选:登录后自动执行命令
crt.Screen.Send "uptime" & vbCr
crt.Screen.Send "df -h" & vbCr
End Sub
脚本说明
- `crt.Session.Connect`:建立指定协议的连接
- `crt.Screen.WaitForString`:等待远程设备输出特定字符串后再继续
- `crt.Screen.Send`:发送命令(`vbCr` 是回车换行)
安全提示:不要在脚本中硬编码明文密码!建议配置 SSH密钥认证 代替密码登录,脚本中只需指定密钥路径即可。
批量配置脚本
网络工程师经常需要对多台交换机执行相同配置。以下脚本演示如何逐台连接设备并执行命令:
' 批量配置脚本 (VBScript)
' 对多台交换机执行相同配置命令
Sub Main()
Dim devices
devices = Array("192.168.1.1", "192.168.1.2", "192.168.1.3")
For Each ip In devices
crt.Session.Connect "/TELNET " & ip
crt.Screen.WaitForString "Username:"
crt.Screen.Send "admin" & vbCr
crt.Screen.WaitForString "Password:"
crt.Screen.Send "password" & vbCr
crt.Screen.WaitForString "#"
' 执行配置命令
crt.Screen.Send "show version" & vbCr
crt.Screen.WaitForString "#"
crt.Screen.Send "show running-config" & vbCr
crt.Screen.WaitForString "#"
' 断开当前连接,继续下一台
crt.Session.Disconnect
Next
crt.Dialog.MessageBox "批量配置完成!"
End Sub
以上脚本适合Telnet管理的网络设备场景。如果是SSH管理的Linux服务器,配合 SSH连接教程 中的参数即可。
Python 脚本高级应用
Python 脚本可以利用丰富的标准库和第三方库,实现比 VBScript 更复杂的自动化任务。Competitor sites like CSDN focus primarily on VBScript; we cover Python for advanced use cases.
设备巡检脚本(Python)
# SecureCRT 设备巡检脚本
# 连接多台设备并收集关键指标
import datetime
def check_device(ip, username, password):
"""连接单台设备并收集信息"""
cmd = "/SSH2 /L %s /PASSWORD %s %s" % (username, password, ip)
crt.Session.Connect(cmd)
crt.Screen.WaitForString("$", 5)
# 收集系统信息
crt.Screen.Send("hostname" + "\r")
crt.Screen.WaitForString("$")
crt.Screen.Send("uptime" + "\r")
crt.Screen.WaitForString("$")
crt.Screen.Send("df -h / | tail -1" + "\r")
crt.Screen.WaitForString("$")
crt.Session.Disconnect()
# 主程序
devices = [
{"ip": "192.168.1.100", "username": "root", "password": "xxx"},
{"ip": "192.168.1.101", "username": "root", "password": "xxx"},
]
for device in devices:
check_device(**device)
crt.Dialog.MessageBox("巡检完成!时间: " + str(datetime.datetime.now()))
Python vs VBScript 选择建议
- 简单自动登录 → VBScript(代码更短,学习成本低)
- 复杂逻辑/数据处理 → Python(有丰富的字符串处理、正则表达式、日期计算库)
- 与外部API交互 → Python(requests库可以调用监控系统API)
- Windows环境兼容性 → VBScript(无需额外安装Python解释器)
脚本录制功能(新手友好)
如果不想手写代码,SecureCRT 提供了脚本录制功能——自动将你的键盘操作转换为 VBScript 代码:
1. Script → Start Recording Script
2. 正常执行你的操作(连接/输入命令/断开)
3. Script → Stop Recording Script
4. 保存为 .vbs 文件
5. 以后直接运行这个 .vbs 文件即可重复刚才的操作
录制脚本的局限性
- 录制的是精确的时间序列操作,无法应对网络延迟变化
- 建议录制后手工优化:添加 `WaitForString` 替代固定延时
- 加入错误处理逻辑(如登录失败时的重试机制)
录制的脚本可以作为学习模板,理解 SecureCRT 对象模型后再手动编写更健壮的脚本。
常见问题
SecureCRT 内置脚本引擎支持 VBScript、JScript、Python、PerlScript 四种语言。VBScript 是Windows环境中最常用的选择(无需额外安装),Python适合复杂逻辑和数据处理场景。
使用 `crt.Session.Connect` 建立连接,`crt.Screen.WaitForString` 等待登录提示,`crt.Screen.Send` 自动输入用户名和密码。建议使用密钥认证代替密码,脚本中只需指定密钥路径即可。
有两种方式:1)用 Send to All Sessions 手动批量发送;2)写脚本循环连接多台设备并依次执行命令。本页面的"批量配置脚本"章节提供了完整的 VBScript 示例代码。
PuTTY完全没有脚本引擎,不支持任何自动化脚本。这是SecureCRT作为商业软件的核心优势之一——内置脚本引擎可大幅提升批量运维效率。
下载 SecureCRT 使用脚本自动化
VanDyke Software SecureCRT 8.1.0,安装后享有30天试用
安全下载 Windows版24.22 MB | MD5公开可验证 | 30天免费试用