吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 634|回复: 7
收起左侧

[其他原创] CRT中通过跳板机批量采集设备备份信息,并按照设备名生成日志

[复制链接]
cjy11235 发表于 2024-11-21 22:13
介绍:CRT运行脚本,伴随file.xlsx文件,文件可以采用下面下载使用,自己进行修改。该脚本使用前提是已经登录在跳板机上,使用跳板机登录设备并执行相关命令。
使用场景:有大量交换机或者服务器的情况,最好是进行备份的操作,如果是执行命令,建议还是自己慢慢操作吧,别出问题。

[Visual Basic] 纯文本查看 复制代码
Dim objExcel, objWorkbook, objSheet1, objSheet2, objSheet3, objSheet4

Dim objShell, deviceAddress, deviceType, command

Dim i, j, deviceCount



' 创建 Excel 应用程序对象

Set objExcel = CreateObject("Excel.Application")

objExcel.Visible = False ' 不显示 Excel 窗口



' 打开 Excel 文件

Set objWorkbook = objExcel.Workbooks.Open("F:\caiji\file.xlsx") ' 修改为实际路径,并且路径必须为英文



' 确保工作表名称正确

' 将sheet页重定义为objSheet

Set objSheet1 = objWorkbook.Sheets("Sheet1") ' 确保这里的名称是正确的

Set objSheet2 = objWorkbook.Sheets("Sheet2")

Set objSheet3 = objWorkbook.Sheets("Sheet3")

Set objSheet4 = objWorkbook.Sheets("Sheet4")

Set objSheet5 = objWorkbook.Sheets("Sheet5")

Set objSheet6 = objWorkbook.Sheets("Sheet6")



' 检查 Sheet1 是否存在数据

If objSheet1.UsedRange.Rows.Count < 2 Then

    crt.Session.Send "ERROR" & vbCrLf

End If



' 获取设备数量

deviceCount = objSheet1.UsedRange.Rows.Count



' 遍历每个设备

For i = 2 To deviceCount ' 从第二行开始,假设第一行是标题

    deviceName = objSheet1.Cells(i, 1).Value ' A列是设备名

    deviceAddress = objSheet1.Cells(i, 2).Value ' B列是设备地址

    deviceType = objSheet1.Cells(i, 3).Value ' C列是设备类型

    

    ' 在 CRT 中发送设备地址

    crt.Screen.Send  deviceAddress & vbCrLf

    

    ' 根据设备类型选择命令

    Select Case deviceType

		'设备类型是华为

        Case "Huawei"

            Set objCommands = objSheet2

		'设备类型是华三

        Case "H3C"

            Set objCommands = objSheet3

		'设备类型是锐捷

        Case "RG"

            Set objCommands = objSheet4

		'设备类型是思科

        Case "Cioco"

            Set objCommands = objSheet5

		'设备类型是华为,假设使用跳板机登录时需要选择用户

        Case "Huawei1"

            Set objCommands = objSheet6

        Case Else

            crt.Screen.Send vbCrLf



    End Select



    '初步定义LOG文件名,定义文件名为时间年月日时分秒

    logfilename = (deviceName&".log")

    crt.Session.LogFileName = logfilename

    '开启LOG记录功能

    crt.session.log true



    ' 执行命令

    For j = 2 To objCommands.UsedRange.Rows.Count ' 从第二行开始

        '等待进入设备

        crt.Screen.WaitForStrings "#", ">"
'等待10秒延迟

        crt.Screen.WaitForStrings 10

        '发送一个回车符

        crt.Screen.Send Chr(13)

        crt.Screen.Synchronous = True

        command = objCommands.Cells(j, 1).Value ' 假设命令在第一列

        crt.Screen.Send  command & vbCrLf



        ' 等待三种可能的提示符

        If crt.Screen.WaitForStrings("#", ">", ")", 10) = 0 Then

            crt.Screen.Send  vbCrLf

        Else

            crt.Screen.Send  vbCrLf

        End If



    Next

 





    '等待跳板机提示已经退出设备

    crt.Screen.WaitForStrings "Your Input is:"

   crt.Screen.WaitForStrings 10

    '关闭LOG记录功能

    crt.session.log  false

Next





' 关闭 Excel

objWorkbook.Close False

objExcel.Quit



' 清理对象

Set objSheet1 = Nothing

Set objSheet2 = Nothing

Set objSheet3 = Nothing

Set objSheet4 = Nothing

Set objWorkbook = Nothing

Set objExcel = Nothing



文档下载:https://wweh.lanzouw.com/is2iY2fs84tc

免费评分

参与人数 4吾爱币 +10 热心值 +4 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
chinawolf2000 + 1 + 1 热心回复!
steven2024 + 1 + 1 谢谢@Thanks!
lq20060413 + 1 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

头像被屏蔽
steven2024 发表于 2024-11-22 00:23
提示: 作者被禁止或删除 内容自动屏蔽
kenkenss 发表于 2024-11-22 08:24
tnancy2kk 发表于 2024-11-22 08:28
basaramk2 发表于 2024-11-22 11:57
一看就是运维人员啊
 楼主| cjy11235 发表于 2024-11-22 15:22
basaramk2 发表于 2024-11-22 11:57
一看就是运维人员啊

被你发现了
 楼主| cjy11235 发表于 2024-11-22 15:23

直接在crt中执行脚本文件就可以啊,我刚刚试了一下没问题
 楼主| cjy11235 发表于 2024-11-23 16:00

操作应该没问题吧。刚开始用python写了一个,结果便携的CRT没法运行,还是vbs哈点
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-8 20:08

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表